编程原则与实践:第4章钻探第1部分

时间:2016-03-18 17:28:08

标签: c++

我似乎无法让这个程序正常工作。我可以让它接受两个整数并将它们打印到屏幕上。但我无法让程序在'|'时终止用来。一旦它进入它无限循环。这是我到目前为止的代码:

#include "../../std_lib_facilities.h"

int main()
{
    int num1 = 0;
    int num2 = 0;
    char counter = '\0';

    cout << "Please enter two integers and press enter. \n";

    bool test = true;
    while (counter != '|')
    {
        cin >> num1 >> num2;
        cout << "Your numbers are: " << num1 << " " << num2 << endl;
        if (cin.fail())
        {
            cout << "Goodbye!\n";
            test = false;
        }
        else (counter != '|');
        cout << "Enter more numbers or press '|' to exit.\n";
    }

    system("pause");

}

1 个答案:

答案 0 :(得分:0)

你在while循环中使用了错误的条件。你永远不会改变counter所以循环永远不会结束。但是,如果输入失败,您会在while循环中将test更改为false。您可以更改while循环的条件以使用test而不是

while(test)
{
    //...
}

由于不再使用counter,您可以完全摆脱它。

请注意,除非您更改为接受字符串并解析输入,否则任何会导致cin失败的输入将导致循环不仅仅是|