如何在C ++中删除文本文件中的特定行

耶洛洛兹

我正在尝试使用c ++删除文本文件内的一行。例如,我有一个包含文本的.txt文件:

booking.txt

1 jer 34 r er
2 43 45 34 456
3 2 4 5 6
4 45 546 435 34
5 cottage 1 323 23
6 we we r we
7 23 34 345 345
8 wer wer wer we

我想在满足特定条件时删除一行。假设我要删除第三行,则必须从.txt文件中删除ID为3的行。

我的代码:

void DeleteLine(string filename)
{
    string deleteline;
    string line;

    ifstream fin;
    fin.open(filename);
    ofstream temp;
    temp.open("temp.txt");
    cout << "Input index to remove [0 based index]: "; //input line to remove
    cin >> deleteline;

    while (getline(fin, line))
    {
        line.replace(line.find(deleteline), deleteline.length(), "");
        temp << line << endl;
    }

    temp.close();
    fin.close();
    remove("cottage.txt");
    rename("temp.txt", "cottage.txt");
}

但给我以下结果:

1 jer 4 r er
2 4 45 34 456
 2 4 5 6
4 45 546 45 34
5 cottage 1 23 23
托马斯·萨布利克

当前,您仅删除deleteline每行中的第一个匹配项要删除整个行,deleteline您必须替换

line.replace(line.find(deleteline), deleteline.length(), "");
temp << line << endl;

std::string id(line.begin(), line.begin() + line.find(" "));
if (id != deleteline)
    temp << line << endl;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从文本文件中删除特定行?

如何删除文本文件中的特定行?

如何在Delphi中从文本文件中删除特定行

在同时对文本文件进行某些操作之后,如何删除该文本文件中的特定行

如何在文本文件中添加/删除行?

删除特定行后如何删除文本文件中的空白行?

如何从python中的文本文件中删除特定行

如何通过输入文件从具有特定值的文本文件中删除行?

如何删除文本文件中的特定段落?

如何从文本文件中删除特定内容?

如何从文本文件中删除特定范围的字符?

如何删除文本文件中的重复行?

如何从文本文件中删除一行?

如何从Powershell中的文本文件删除行?

如何删除/阻止文本文件中的重复行

如何从文本文件中删除仅数字行?

如何从文本文件中删除包含特定字符串的所有行?

如何通过终端从文本文件中删除包含特定单词的行?

如何从文本文件的行中删除特定单词?

如何使用用户输入 Python 3 删除文本文件中的特定行

如何从文本文件中查找和删除特定行

如何在C ++中从文本文件中删除一行?

如何在文本文件的特定行中更新特定值C#

如何更改文本文件中的特定行

如何从PHP中的文本文件读取特定行

如何只读取文本文件中的特定行?

如何提取文本文件中的特定行

如何在c#中解析文本文件中的特定行

如何在c#中从一行删除到文本文件的末尾?