2011-01-17 10 views
18

मैं बस लॉगफाइल में लिखना (जोड़ना) चाहता हूं। मैं इसे यहाँ देखा:
http://www.cplusplus.com/reference/iostream/fstream/open/fstream fstream के साथ फ़ाइल में कैसे संलग्न करें :: ऐप ध्वज काम नहीं करता है

तो यह है कि क्या मैं

#include <fstream> 

fstream outfile; 

//outfile.open("/tmp/debug.txt"); // works, simply for writing 
outfile.open("/tmp/debug.txt", fstream::app); // does nothing 

outfile << "START" << endl; 

outfile.close(); 
+0

आप भी स्ट्रीम का उपयोग कर सकते हैं, आपका कोड उस के साथ काम करेगा। – isarandi

उत्तर

28

fstream::app|fstream::out बजाय fstream::app किया है। appout निर्दिष्ट किए बिना समझ में नहीं आता है (कोई सोच सकता है कि इसे out पर लागू किया जाना चाहिए था, लेकिन यह नहीं है)।

+7

fstream डिफ़ॉल्ट प्रदान करेगा यदि आप कोई तर्क नहीं देते हैं, लेकिन यदि आप एक (जैसे ऐप) की आपूर्ति करते हैं तो यह स्वचालित रूप से डिफ़ॉल्ट रूप से या आपके साथ नहीं होगा। – CashCow

+0

'fstream :: ऐप' का मतलब आउटपुट संलग्न करने का मतलब नहीं है, लेकिन 'ऑफस्ट्रीम :: ऐप' का मतलब आउटपुट एपेंड ('स्ट्रीम ऑफ' की वजह से) है। दूसरे शब्दों में, यह स्ट्रीम प्रकार है जो उद्घाटन मोड नहीं है। –

संबंधित मुद्दे