这就是我认为代码应该是这样的。顺便说一句,它在一个函数(主要)中。
char a;
if (a [is detected]) {
printf("Incorrect input format \n");
exit( EXIT_FAILURE );
}
答案 0 :(得分:3)
请记住,数字也是字符。您要做的是使用scanf
扫描整数,并检查返回值。 scanf
系列函数的返回值是成功扫描的项目数,或者出错时为-1
。如果您扫描单个整数(格式为"%d"
),那么如果scanf
未返回1
则会出错。
所以你可以做类似
的事情if (scanf(" %d", &number) == 1)
{
/* Got a number okay */
}
else
{
/* Not a number in the input */
}
还要记住,如果scanf
失败,输入仍然存在,所以你不能只循环并希望忽略当前的输入。一个简单的方法是使用fgets
读取一行输入,然后使用sscanf
扫描新读取的行。
答案 1 :(得分:0)
使用fread
代替scanf
来阅读stdin
的输入。解析用户提供的输入以检查是否将char
作为输入,然后打印错误。