45

我正在使用 C++ 编程。在我的代码中,我创建了一个文本文件,将数据写入文件并使用流从文件中读取,在完成我希望的序列后,我希望清除 txt 文件中的所有数据。谁能告诉我清除txt文件中数据的命令。谢谢

4

5 回答 5

72

如果您只是使用截断选项打开文件进行写入,您将删除内容。

std::ofstream ofs;
ofs.open("test.txt", std::ofstream::out | std::ofstream::trunc);
ofs.close();

http://www.cplusplus.com/reference/fstream/ofstream/open/

于 2013-06-10T21:18:37.590 回答
8

据我所知,只需在没有附加模式的情况下以写入模式打开文件就会删除文件的内容。

ofstream file("filename.txt"); // Without append
ofstream file("filename.txt", ios::app); // with append

第一个将位置位放在开头擦除所有内容,而第二个版本将位置位放在文件结束位并从那里写入。

于 2020-03-14T04:42:19.200 回答
6

如果设置了 trunc 标志。

#include<fstream>

using namespace std;

fstream ofs;

int main(){
ofs.open("test.txt", ios::out | ios::trunc);
ofs<<"Your content here";
ofs.close(); //Using microsoft incremental linker version 14
}

在我遇到的常见编程情况下,我根据自己的需要彻底测试了这一点。一定要执行“.close();” 手术。如果您不这样做,则无法确定您是 trunc 还是只是应用程序来请求文件。根据文件类型,您可能只是附加在文件上,这取决于您的需要可能无法满足其目的。一定要调用“.close();” 在您尝试替换的 fstream 上明确。

于 2016-12-18T15:15:09.240 回答
5

删除文件也会删除内容。请参阅删除文件

于 2013-06-10T21:35:44.117 回答
0

您应该创建一个清除文件所有数据的函数,然后运行它。

void clear()
{
    ofstream file("fileout.txt");
    file<<"";
}
于 2021-12-20T09:27:26.763 回答