从C ++文件中读取行后,如何立即删除行

时间:2018-10-22 21:45:13

标签: c++

我正在读取文件,如下所示:

#include <fstream>

std::ifstream infile("example.txt");
for (std::string line; std::getline(infile, line);)
{
  std::cout << line << std::endl;
}

现在,我想阅读该行并在阅读后删除该行。最后,example.txt应该为空。我想知道是否可以用C ++做到这一点。

谢谢!

1 个答案:

答案 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
}