我想在std::fstream
的文件中附加一些文本。我寫了這樣的事情在啓動時清除文件的內容,然後追加
class foo() {
foo() {}
void print() {
std::fstream fout ("/media/c/tables.txt", std::fstream::app| std::fstream::out);
// some fout
}
};
問題與這種結構是,每次我運行我的程序時,該文本被追加到我以前的運行。例如,在第一次運行結束時,文件大小爲60KB。在第二次運行開始時,文本被附加到60KB文件。
爲了解決這個問題,我想在構造函數中初始化fstream,然後以追加模式打開它。像這樣
class foo() {
std::fstream fout;
foo() {
fout.open("/media/c/tables.txt", std::fstream::out);
}
void print() {
fout.open("/media/c/tables.txt", std::fstream::app);
// some fout
}
};
此代碼的問題是在執行期間和運行結束時的0大小的文件!
爲什麼你打開/關閉文件每個打印? – user1278743 2013-02-18 15:50:14
只需打開它而不追加。只要文件沒有重新打開,所有後續的寫入都將被相繼寫入。 – hmjd 2013-02-18 15:50:39
我沒有關閉該文件。你推薦什麼? – mahmood 2013-02-18 15:50:59