C ++通过第一个单词从.txt文件中删除一行文本

时间:2018-02-01 10:31:52

标签: c++ text delete-row

我的程序需要做的是从.txt文件中删除一行文本,但需要用户输入。用户通过键入第一个单词来说明要删除哪一行,我的程序应删除整行,例如

Image with example .txt file

用户键入opel,它应该删除行opel(astra)。

string izbrisiLiniju;
string linija;

ifstream citanjeLinija;
citanjeLinija.open("auti.txt");

ofstream brisanjeLinija;
brisanjeLinija.open("temp.txt");

cout << "Ispis autiju" << endl;
while (getline(citanjeLinija, linija))
{
    cout << linija << endl;
}

cout << "Unesite vrstu automobila za izbrisati: " << endl;
getline(cin, izbrisiLiniju);

while (getline(citanjeLinija, linija))
{
    if (linija != izbrisiLiniju)
    {
        brisanjeLinija << linija << '\n';
    }
}

brisanjeLinija.close();
citanjeLinija.close();
remove("auti.txt");
rename("temp.txt", "auti.txt");

getchar();

以下是我尝试这样做但是由于某种原因它只是删除了每一行。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

你有一些错误。

您比较整个字符串,而不仅仅是前缀。

linija != izbrisiLiniju替换为linija.compare(0, izbrisiLiniju.size(), izbrisiLiniju) == 0