我想在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