#include
using namespace std;
int main()
{
int number,s;
char str[20];
cout<<"请输入一个整数噢亲~(淘宝小二语)~"<
s=cin.rdstate();
while(s)
{ cin.clear();
cin>>str;
cout<<"抱歉噢亲,您的输入为非整数,请您重新输入╮(╯_╰)╭"<
s=cin.rdstate();
}
cout<<"亲,您刚才成功地输入了一个整数噢:"<
if ((number%5!=0)&&(number%6!=0))
cout << number <<" is not divisible by either 5 or 6. " << endl;
else if ((number%5==0)&&(number%6==0))
cout << number <<" is divisible by both 5 and 6. " <
cout << number <<" is divisible by 5 or 6, but not both. " <
cout<<"恭喜您亲,您的程序成功运行了噢~~~~"<
cin.get();//防止程序输出一闪而过
cin.get();//防止程序输出一闪而过
return 0;
}
改好了,也调试好了,只能限定整数输入,可以反复多次错误输入非整数,要不要选我最佳答案,自己凭良心吧,网友们都看着的。......
整数数字就是char的取值范围是从'0'到'9',超出这个范围的取值自动被忽略,
自己写个函数,如下
char myInputInt()
{
char c;
BOOL bCon=TRUE;
while(bCon)
{
scanf("%d",&c);
if(c>='0' && c<='9')
{
bCon=FALSE;
return c;
}
}
}
想要保证用户只能输入数字的话得自己写函数处理:
#include
int getNumber()
{
int ret = 0;
char buf[32] = {0};
char c;
int i=0;
while((c=getch())!='\n')
{
if(i>=10&&c!='\b') continue;//输满10个数后只能接受回车或退格backspace
if(c>='0'&&c<='9') {putchar(c);buf[i++]=c;}//数字保存并回显
else if(c=='\b'&&i>0) {printf("\b \b"); buf[--i]='\0';}
}
sscanf(buf,"%d",&ret);
return ret;
}
你先用一个字符串来存,搜索看有没有不是数字的(比如英文啊,小数点啊,开头是0啊),有的话清空,提示重新输入。然后用sscanf()函数再读入到int里面...