比如
scanf("%d",&n);
if(......)
输入错误;
求指教
没表述清楚
根据ascii表没法判断 因为%d也能把字符读成一串整数,
而我这个程序不管你是输入整数还是字符都会产生一个结果
字符读进来的一个%d数值算出的结果显然不行
所以要判断一下
这么说吧:
我目前需要接受一个整数,然后经过一些运算,得到一个结果,
但是你可能不小心按了几个个字母或者别的什么键 回车了,总要反馈一些信息吧!
你这种是不肯能判断出来的。
j = scanf("%d",&i); 可以判断scanf的返回值,如果输入的是非数字开头,那么scanf的返回值是0。如果输入的是数字开头,即使是56bnfd123这种东西,scanf仍然会把56读出来,赋值给i,并且返回值是1。
你的这个要求目前从我这来看好像实现不了,看看其他C语言的高手有没有好方法。
按照楼主的要求,那就不能用%d了,要用%s或者gets函数,按照字符串读进来。然后每一个去判断是否在0到9之间,如果都在,就认为是正确的,再把字符串转换成整数就行了。
如果有一个不在0到9之间就报错。
程序如下,有个限制就是输入不能大于500个字符,不然就会出错。
int i,j;可以通过 ASCII 码的值来判断,不知道你这里说的字符是什么意思,不过给你举个例子:
if(n>=48 && n<= 57)