首页 > 解决方案 > 正确创建并打开了 ofstream .txt 文件,但我无法写入

问题描述

我正在制作一个程序,将用户输入的字符串与从 ifstream Gfile 中获取的另一个字符串进行比较,如果比较结果为真,我想将该 ID 保存在 ofstream RFile 中,这是我的代码:

void Dropbox::SafetyVerifByString(string GivenID, string GivenFile, string ReturnFile)
{
    ifstream GFile(GivenFile.c_str());
    ofstream RFile("Results.txt");
    string Res="";

    if(!GFile.is_open() || !RFile.is_open())
    {
        cout<<"Error: One Of The Files Could Not Open!";
    }
else
    {
        while(getline(GFile,Email,':') && getline(GFile,ID)) // GFile contains a 100 lines like this mickeykats@gmail.com:fa289bcf529dc73c1e0376652af1299332946b59
        {
            if(GivenID==ID) //this is where my problem resides
            {
                Res=Email+":"+ID;
                cout<<Res<<endl;
                RFile<<Res<<endl;
            }
        }
    }
    GFile.close();
    RFile.close();
}

我试着把RFile<<Res<<endl;上面和外面的 if 语句和它工作,它实际上可以在任何地方工作,但在 if 语句内,我不想要它,但在那个语句内,我从凌晨 2 点到凌晨 5 点一直被困在这里,它正在开车我疯了,实际上没有理由这样做..感谢您的时间。

PS:当我在这里时,如果有任何更好的方法可以从包含数百行的文件中读取,每行具有以下格式->电子邮件:代码以将电子邮件存储在字符串变量中并将代码存储在另一个字符串中的方式变量,请告诉我,如果我想出的(通过互联网研究)是好的,也请告诉我,谢谢。

Edit1:我Cout<<ID<<endl;在之后添加了一个,if(ID=GivenID)只是为了向您展示 ID 正确地获得了所需的值,并且我做了一堆尝试来向您展示结果:

这是整个程序的执行

Edit2:我做了一些更多的测试,似乎我的 4 个文本文件中的一些工作正常,并且该功能确实打印到结果,而在其他一些则没有,我更加困惑......我有一些东西与某些文件中的加密通行证和构成它的字符有关,这里是文件的预览:

文件 1 文件 2 文件 3 文件 4

标签: c++fstream

解决方案


推荐阅读