Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在假定为int时读取scanf的字符_C_Scanf - Fatal编程技术网

在假定为int时读取scanf的字符

在假定为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

我正在使用scanf读取int,但是,如果有人输入了int以外的内容,我会创建一个错误。我注意到,如果我为scanf输入一个字符(“%d”,%number);,它将其保存为0。我希望0成为一个选项。我如何避免这些问题

测试代码是 整数; 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
或进行解析。