美好的一天!我的问题是我应该删除文本文件中的整个特定行。但相反,我只是用空格替换它。实际上,我不知道如何删除该行。这是我的代码:
fstream fs("FoodList.txt");
//charPos here is the position in file where I should begin deleting.
fs.seekp(charPos);
//I loop 100 times because I am sure that each row is 100 characters.
for (int i = 0; i < 100; i++)
{
//What I really want to do is to delete the whole row
fs << " ";
}
我的文本文件如下所示: 之前:
apple
banana
carrot
cherry
之后(如果我选择charPos = 3
):
apple
banana
cherry
顺便说一下,我已经在我可以编辑特定行的更新部分。任何帮助将不胜感激! :)
答案 0 :(得分:4)
最简单的方法是读入文件,写出临时文件,排除选定的行并将临时文件移动到原始文件。
答案 1 :(得分:0)
我不知道这样做是不是很糟糕,但我找到了一种简单的方法。
while(!fs.eof())
{
fs << '\0';
}
此代码将删除您在文件中的位置后的整个文本。
顺便说一句:fs.eof()告诉你是否在流的末尾
设置您的位置,您可以使用:
fs.seekp(streampos pos);
如果你只想删除你在下一个空格之间的文字,Tabstop或输入你只需使用循环中显示的单行,但我想你知道(:
我希望这会对你有所帮助