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.
答案 0 :(得分:0)
在循环中间关闭ifs
并不是一个好主意......