我的程序需要做的是从.txt文件中删除一行文本,但需要用户输入。用户通过键入第一个单词来说明要删除哪一行,我的程序应删除整行,例如
用户键入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();
以下是我尝试这样做但是由于某种原因它只是删除了每一行。 提前谢谢。
答案 0 :(得分:0)
你有一些错误。
您比较整个字符串,而不仅仅是前缀。
将linija != izbrisiLiniju
替换为linija.compare(0, izbrisiLiniju.size(), izbrisiLiniju) == 0