【发布时间】:2020-09-16 04:43:44
【问题描述】:
我正在使用 scanf 读取 int,但是,如果有人放入 int 以外的内容,我会创建一个错误。我注意到,如果我为 scanf("%d",%number); 输入一个字符,它会将其保存为 0。我希望 0 成为一个选项。我该如何避免这个问题?
测试代码是 整数; scanf("%d",&number); printf("%d",number);
【问题讨论】:
-
始终检查
scanfreturns 的内容。请记住,如果scanf无法将输入与格式匹配,那么它将返回并保持输入不变(在下一次调用scanf时读取)。这就是为什么建议阅读整行(使用例如fgets)并使用例如解析它的原因。sscanf或strtol.