C ++搜索行到txt文件

时间:2015-12-14 00:53:04

标签: c++

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.

1 个答案:

答案 0 :(得分:0)

在循环中间关闭ifs并不是一个好主意......