C ++无限循环条件

时间:2013-12-03 04:45:09

标签: c++

我是C ++的新手,我在构建一个简单的c ++加法计算器时遇到了问题。这是代码:

#include <iostream>
#include <string>
#include <climits>

using namespace std;

int main()
{
    int number;
    int total = 0;
    int x = 0;
    int z = 5;

    cout << "Please enter the number you want to add" << endl;
    while(x < 5 && z != 0){
        cin >> number;

        if (!cin){
            cout << "Enter a valid number. " << "You have" << z << "tries left before this program terminate." << endl;
            cin.clear();
            z--;
        }

        else{
            total = total + number;
            x++;
        }

    }

    cout << "The total number is " << total << endl;
    return 0;
}

当我运行应用程序然后输入一个非整数时,它会显示“你还剩下_尝试”。如何制作应用程序以便用户有机会输入内容?

2 个答案:

答案 0 :(得分:0)

一个简单的解决方案是添加

std::string junk;
cin >> junk;

cin.clear()之后。这将提取垃圾并将其放入junk,然后跳过它。

答案 1 :(得分:0)

您可以使用ignore()。我不知道你会有多少垃圾角色,但你可以试试像

这样的东西
cout << "Enter a valid number. " << "You have" << z << "tries left before this program terminate." << endl;
while (!cin.eof())
    cin.ignore(); 
cin.clear();