[求助]如何验证变量输入是否合法
比如一个int型变量用户输入'q'怎么检测到非法并让用户重新输入呢?
for(n = 1; n < 4; n++) 49 { 50 cin>>answer; 51 if(answer == result) 52 { 53 cout<<"回答正确"<<endl; 54 break; 55 } 56 else if(n < 3) 57 cout<<"回答错误.请重新输入:"; 58 } 相关部分代码是这样的.如果我输入一个'q'后就直接循环结束了. 我想问下怎么才能检测到输入不正确后让用户重新输入.
#include <iostream> #include <limits> using namespace std; int main( void ) { const int result = -123; for( size_t n=1; n!=4; ++n ) { int answer; if( cin>>answer ) { if( answer == result ) { cout << "…………" << endl; break; } } else { cin.clear(); cin.ignore( numeric_limits<streamsize>::max(), '\n' ); } if( n < 3 ) cout << "…………:"; } return 0; }
char ans; do { cin>>num; cout<<"You input a numer:"<<num<<endl; cout<<"Is it correct?"<<endl; cin>>ans; }while(ans!='y'||ans!='Y'); //输入y||Y确认,否则重新输入
[此贴子已经被作者于2016-1-7 11:03编辑过]