我得到一个无限循环,我不知道为什么或如何解决它

时间:2017-12-01 06:03:12

标签: c++

ifstream olympicsStream;
        olympicsStream.open("olycs105.txt");
  

这是打开文件的地方

        olympicsStream >> firstcountry; // string variable for countries
        while (firstcountry!="END_OF_FILE")//
  

无法弄清楚条件

的内容
        {

            cout << firstcountry << endl;
            olympicsStream >> a;
            cout << a << endl;

            for (i = 0; i < 5; i++)
            {
                olympicsStream >> namelast[i];
                olympicsStream >> namefirst[i];
                olympicsStream >> b[i];
                olympicsStream >> c[i];
                olympicsStream >> d[i];
                getline(olympicsStream, Asport[i]);
            }


            cout << namelast[i - 1] << endl;
            cout << namefirst[i - 1] << endl;
            cout << b[i - 1] << endl;
            cout << c[i - 1] << endl;
            cout << d[i - 1] << endl;
            cout << Asport[i - 1];
        }
  

循环需要5行但是无限相同的行而不是读取文件的其余部分

1 个答案:

答案 0 :(得分:3)

您忘记在while循环结束时更新变量'firstcountry'。

只需在关闭while循环之前添加olympicsStream >> firstcountry;,您的代码就可以正常运行

假设文件中的最后一个单词是“END_OF_FILE”