C++的输入问题

来源:百度知道 编辑:UC知道 时间:2024/07/04 00:02:19
C++的输入问题

我想编写一个程序就是:
int a;
cin>>a;
当输入a时,如果不是整型则重新输入,各位高手,帮帮我这个菜鸟

int getInt(){
string str;
bool flag = true;
while(flag){
cin >> str;
flag = false;
for(int i = 0 ; i < str.size() ; i++){
if(str.at(i)>='0' && str.at(i)<='9')
continue;
else{
flag = true;
break;
}
}
}
return atoi(str.c_str());
}
前面再加个正负号的判断吧,我这个只认自然数。理论基础是正则表达式。可以参考编译原理的词法分析部分。

估计只能输入字符串,然后解析这个字符串。

这问题可大了!
一楼的想过没输入字符‘A’怎么办?
输入字符串怎么办?

int main()
{
char ch;
char strSource[6];
int i = 0;

while( i <= 5 )
{
ch = _getch();
if( isdigit ( ch ) )
{
strSource[i] = ch;
printf("%c", ch);