c++里怎么样规定通过cin来输入一串字符为int型的数字

2025-05-20 05:32:06
推荐回答(4个)
回答1:

如果你按数字读入的话,读到无法接受的部分后,读入这个动作就会停止, 继续用int读的话就永远也读不过

可以考虑用string来读, 一次读入一行, 然后用atoi转成整数,如果你对格式要求特别严格的话也许只能自己转了。。

回答2:

bool IsNumeric(char num[50])
{
bool flag;
for(;*num!='\0';num++)
{
if(*num>='0'&&*num<='9')
flag=true;
else
{
flag=false;
break;
}
}
return flag;
}
#include "iostream.h"
void main()
{
char iA[50];
for(;;)
{
cin>>iA;
if(!IsNumeric(iA))
{
cerr<<"输入错误\n";
cin.clear();
cin.ignore();
}
else
{
cout<<"输入正确"< break;
}
}
}

回答3:

int iA = 0;
for( ; ; )
{
cin>>iA;
if(!cin)
{
cin.clear();
cin.ignore(1024,'\n');
cout<<"error!"<}
或者
if(cin.fail())
{
cin.clear();
cin.sync();
}
试试

回答4:

输入错误后
加个
if(!cin.good())
fflush(stdin);