2014-10-26 81 views
0

当我要求用户输入一个值并且该值不允许存在时,我希望程序结束而不是继续进行。我试图用休息;但它不适用于if语句。下面是代码片段:如何防止代码在显示错误时运行?

int main(){ 
    int flips, guess; 

    cout << "How " << endl; 
    cin >> flips; 

    cout << "Guess " << endl; 
    cin >> guess; 
    if(guess>flips) { 
     cout << "Guess Error" << endl; 
    } 
} 

代码给出了“猜测错误”时输入无效放置,但其余代码也运行。

+0

如果用户输入的不是数字的字符串会怎样?我建议考虑“读取用户输入”的逻辑,然后重新使用“flip”和“guess”。 – 2014-10-26 21:21:12

回答

0

首先,您应该验证flipsguess的输入。如果输入不是整数值,则输入表达式将返回false。

if(!(cin >> flips)) 
{ 
    cout << "Input must be an integer" << endl; 
    return 1; // return from main with error code 
} 

同样应该适用于验证输入flips。如果猜的次数大于翻转的数量只是返回...

if (guess > flip) 
{ 
    cout << "Guess Error" << endl; 
    return 2; // return with error code 2 
} 

注意的是,在return语句中使用的误差值是任意的,并且可以更换,以满足您的具体要求。

+0

可能会更好地使用'EXIT_FAILURE':http://en.cppreference.com/w/cpp/utility/program/EXIT_status – 2014-10-26 21:24:16