如何从txt中删除想要的行

时间:2017-11-28 18:32:51

标签: c++ fstream

我正在写一篇关于搜索房间号码的文章,其中包括c ++中txt所需的房间号码,但它删除了所有内容,它有什么问题?它的所有虚假代码,你能建议我一个新的算法吗?

                    int sil;
                    cout << "Silmek istediğiniz oda numarası : ";
                    cin >> sil;
                    oda.Sil(sil);
                    fstream veriler,gecici;
                    veriler.open("Veriler.txt", ios::out || ios::in || ios::app);
                    gecici.open("Gecici.txt", ios::out || ios::in || ios::app);
                    while (!veriler.eof())
                    {
                        veriler >> oda.oda_Numara;
                        veriler >> oda.musteri_Ad;
                        veriler >> oda.musteri_Soyad;
                        veriler >> oda.oda_Ucret;
                        veriler >> oda.musteri_Kimlik;
                        veriler >> oda.musteri_Numara;
                        if (oda.oda_Numara == sil)
                            continue;
                        else
                        {
                            gecici << setw(20) << oda.oda_Numara
                                << setw(20) << oda.musteri_Ad
                                << setw(20) << oda.musteri_Soyad
                                << setw(20) << oda.oda_Ucret
                                << setw(20) << oda.musteri_Kimlik
                                << setw(20) << oda.musteri_Numara
                                << endl;
                        }
                }
                    remove("Veriler.txt");
                    rename("Gecici.txt", "Veriler.txt");
                    gecici.close();

1 个答案:

答案 0 :(得分:0)

我编辑了我的答案,我认为这更符合您的要求:

string buf;
fstream file, toGo;
file.open("somefile.txt");
toGo.open("temp-file.txt", ios::out);

while(getline(file,buf)) 
{
    if(buf.find("0") != -1) toGo<<buf;
}
file.close(); 
rename("temp-file.txt", "somefile.txt");

希望这更好!