निम्नलिखित कोड दोनों अनाम और नामित धाराओं के साथ एक फ़ाइल के लिए एक स्ट्रिंग शाब्दिक आउटपुट:बेनामी std :: ofstream संभालती चरित्र सरणी को गलत तरीके से
#include <fstream>
using namespace std;
int main()
{
ofstream("testfile") << "test" << endl;
ofstream ofs ("testfile2");
ofs << "test2" << endl;
return 0;
}
आप strace के उत्पादन से देख सकते हैं, तो केवल नामित धारा काम करता है:
open("testfile", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
write(3, "0x400a91\n", 9) = 9
close(3) = 0
open("testfile2", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
write(3, "test2\n", 6) = 6
close(3) = 0
इसके अलावा, यदि आप एक शाब्दिक के बजाय std :: string का उपयोग करते हैं, तो यह संकलित करने में विफल रहता है।
यह क्यों है?
इस उत्तर को स्वीकार करते हुए क्योंकि कामकाज सी ++ 03 पर काम करता है। धन्यवाद! –