我正在读取文件,如下所示:
#include <fstream>
std::ifstream infile("example.txt");
for (std::string line; std::getline(infile, line);)
{
std::cout << line << std::endl;
}
现在,我想阅读该行并在阅读后删除该行。最后,example.txt
应该为空。我想知道是否可以用C ++做到这一点。
谢谢!
答案 0 :(得分:0)
您不能只是从文件中删除一行。将文件视为固定大小的数组,就无法删除数组的第一个元素,因为它的内存仍然存在。您所要做的就是更改其中包含的数据。就是说,您可以做的是,在读取文件后,可以通过使用std::ofstream
将其打开来擦除整个内容。默认情况下,std::ofstream
将创建一个文件(如果该文件不存在),如果存在则将其删除并为您提供空白文件。看起来像
int main()
{
std::ifstream infile("example.txt");
for (std::string line; std::getline(infile, line);)
{
std::cout << line << std::endl;
}
Infile.close()
std::ofstream{"example.txt"}; // erase the contents
}