如何限制scanf的输入?

来源:百度知道 编辑:UC知道 时间:2024/06/06 13:04:17
比如只让scanf只输入数字,输入字母或空格或其它字符则忽略不计?

int i=0;
char string[N];
scanf("%c",c);
while(c!="你要的结束符");
{if(c<'9'&&c>'0')
str[i++]=c;
else
scanf("%c",c);}
str[i]='\0';
把你的数字当成字符输入,保存在一个字符串中就行啦。if(c<'9'&&c>'0')
这句话你可以视情况而定,就可以实现你说的限制了吧。

scanf("%d", &d);
也可以考虑下scanf的这种用法:
scanf("%[0-9]s", s);
即只有ASC码为0x30至0x39的字符放入字符串 s 中。

scanf("%d%d",&a,&b);
这样就可以了,输入字母或空格或其它字符就忽略不计了。

楼上的回答有点问题吧,如果那样,输入字母 的时候,不就自动转化为对应的ASC码?

scanf("%d",&a)只输入数字
scanf("%c",&a)只输入字符
scanf("%s",&a)输入字符串