2012-11-02 218 views
2

我有一個用C++編寫的程序,它接受來自用戶的文本並使用文件句柄將其保存到文本文件中。這裏是該程序的片段:如何追加到文本文件?

該程序工作正常。唯一的問題是它不會將文本附加到文本文件。相反,它會「刪除」所有現有文本,並只保存新文本。

也就是說,保存在程序的前一個會話中的文本被丟棄,而保存新的文本。我該如何解決這個問題?

+0

考慮到此代碼似乎比C++更具有c。如果你想用嚴格的C++開發,使用fstreams來工作 –

回答

12

打開文件時包含O_APPEND標誌。請參閱參考頁面_open()

因爲這是C++考慮使用ofstream來代替。這些都是類型安全的,並且刪除了必須指定正在寫入文件的參數長度的要求:

std::ofstream out(full_path, std::ios_base::app); 
if (out.is_open()) 
{ 
    out << "----Session----\n\n" 
     << "Date/Time: " << datetime << "\n\n" 
     << "Text: " << text << "\n\n\n\n"; 
} 
+0

非常感謝你的直接回答:) – Matthew