C++正在将行搜索到txt文件中

C++ Searching line into txt file

本文关键字:txt 文件 搜索 C++      更新时间:2023-10-16

txt文件中有1000个名称。

1   Jacob   Sophia
2   Mason   Emma
3   Ethan   Isabella
4   Noah    Olivia
5   William     Ava
.....

节目总是说这个名字不在流行的男孩/女孩名字中。

调试后,我意识到"排名"从未增加。总是1,我以为程序只是在检查第一行。我再次运行程序并键入Jacob。结果是一样的。我看不出我的错误在哪里。

int main()
{
    bool boyName = false;
    bool girlName = false;
    ifstream ifs;
    int rank;
    string boy_name, girl_name, name;
    ifs.open("babynames2012.txt");
    if (ifs.fail())
        cout << "fail" << endl;
    else
        cout << "success" << endl;

    cout << "Enter a name" << endl;
    cin >> name;

    while (ifs >> rank)
    {
        ifs >> rank >> boy_name >> girl_name;
        if (name == boy_name)
        {
            cout << name << " is ranked " << rank << " among boy names" << endl;
            boyName = true;
        }
        if (name == girl_name)
        {
            cout << name << " is ranked " << rank << " among girl names" << endl;
            girlName = true;
        }
        if (boyName == false)
        {
            cout << name << " is not among the popular boy names" << endl;
        }
        if (girlName == false)
        {
            cout << name << " is not among the popular girl names" << endl;
        }
    }
        ifs.close();
        system("pause");
        return 0;
}

结果总是相同的

<name> is not among the popular boy names.
<name> is not among the popular girl names.

在循环中间关闭ifs不是个好主意。。。