关于c语言scanf函数输入错误格式的问题

代码如下:
retry:printf("请选择您要执行的操作:");
int instruction;
scanf("%d", &instruction);
getchar();
if(instruction不是0-4之间的数字){
printf("命令错误,重新输入“);
goto retry;
}
如果我输入了一个既有字母又有数字的字符串WAB1234,输出的是四个连着的”命令错误,重新输入 请选择您要执行的操作:“ 这是为什么,如何使得即使输入了字符串也只提示一次命令错误然后让你输入下一次操作?

scanf函数输入完成需要一个回车,getchar接收的是一个字符。
要么就是你输入的内容放入字符串中然后逐个比较。
要么你可以getchar每一个字符,然后转化成ascii码,通过判定数值区间来判定输入的字符是否为数字。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答