为什么我的while循环无法正常终止

时间:2019-06-26 18:56:41

标签: c++ while-loop

我基本上有一个while循环,可以读取两个整数并打印出来。我的while循环可以很好地处理数字。但是,要终止循环,我需要使用“ |”字符。现在,只要我输入“ |”字符,我的程序一遍又一遍地循环显示所有格式正确的内容,但用怪异的数字代替了两个整数。现在,我已经以另一种方式解决了问题,因此我不需要解决方法的答案。我只想了解为什么这段代码不起作用。

我尝试使用非整数的其他字符,并且发生相同的事情,因此我认为它与“ to_string”方法有关,并将整数转换为要比较的字符串。我只是不明白为什么它不会终止。

int num1, num2;

while(true) {
    cout << "Please enter two numbers or enter '|' to terminate program\n";
    cin >> num1 >> num2;
    if (to_string(num1) == "|" || to_string(num2) == "|") 
        break;
    cout << "Number 1: " << num1 << endl << "Number 2: " << num2 << endl;

输出与预期的一样,为整数。使用“ |”终止它会一遍又一遍地循环显示num1为0和num2作为先前的输入,或者如果没有先前的输入则显示一个大数字。

0 个答案:

没有答案