从文件中读取,清除它,写入它

时间:2010-01-16 08:36:24

标签: c++ file file-io

我正在尝试从文本文件中读取数据,清除它,然后使用fstream类按顺序写入它。

我的问题是如何在阅读后清除文件。我知道我可以打开一个文件并同时清除它,但是我可以在流上调用一些函数来清除它的内容吗?

2 个答案:

答案 0 :(得分:15)

您应该打开它,执行输入操作,然后关闭它并使用std :: fstream :: trunc标志集重新打开它。

#include <fstream>

int main()
{
    std::fstream f;
    f.open("file", std::fstream::in);

    // read data

    f.close();
    f.open("file", std::fstream::out | std::fstream::trunc);

    // write data

    f.close();

    return 0;
}

答案 1 :(得分:4)

如果您想在发生崩溃或其他灾难性事件时完全安全,则应该写入第二个临时文件。完成后,删除第一个文件并将临时文件重命名为第一个文件。请参阅Boost Filesystem库以获取帮助。