在假定为int时读取scanf的字符
我正在使用scanf读取int,但是,如果有人输入了int以外的内容,我会创建一个错误。我注意到,如果我为scanf输入一个字符(“%d”,%number);,它将其保存为0。我希望0成为一个选项。我如何避免这些问题 测试代码是 整数; scanf(“%d”和编号);在假定为int时读取scanf的字符,c,scanf,C,Scanf,我正在使用scanf读取int,但是,如果有人输入了int以外的内容,我会创建一个错误。我注意到,如果我为scanf输入一个字符(“%d”,%number);,它将其保存为0。我希望0成为一个选项。我如何避免这些问题 测试代码是 整数; scanf(“%d”和编号); printf(“%d”,数字) 尝试此方法以查看输入的输入是否为数字%d: #include <stdio.h> int main(void) { int number; if (scanf("%d
printf(“%d”,数字) 尝试此方法以查看输入的输入是否为数字
%d
:
#include <stdio.h>
int main(void) {
int number;
if (scanf("%d", &number))
printf("A number!\n");
else
printf("Not a number!\n");
return 0;
}
#包括
内部主(空){
整数;
如果(扫描频率(“%d”和编号))
printf(“一个数字!\n”);
其他的
printf(“不是数字!\n”);
返回0;
}
始终检查所需内容。请记住,如果scanf
无法将输入与格式匹配,则它将返回并保持输入不变(在下一次调用scanf
时读取)。这就是为什么建议阅读整行内容(使用例如)并使用例如sscanf
或进行解析。