【发布时间】:2021-12-28 13:06:06
【问题描述】:
在 C 程序中,我想输入一个 int 类型的输入,但在我运行程序后,我会给出一个字符类型作为输入,但它没有出现任何错误,并且它显示一个整数。为什么?
代码:
#include <stdio.h>
int main(){
int x;
printf("input: ");
scanf("%d", &x);
printf("the output is %d",x);
return 0;
}
编译后:
input: a
the output is -1225407932
[Program finished]
【问题讨论】:
-
查看
scanf的返回值。 -
@Md ART 变量x没有初始化,可以输出任何垃圾。
-
您确实收到了错误,但您忽略了它。
scanf()函数返回 0 表示它未能将任何输入转换为数字(但有数据要处理;它没有遇到 EOF)。您键入的字符仍在输入缓冲区中,等待后续 I/O 操作处理。
标签: c