【发布时间】:2021-01-05 09:41:24
【问题描述】:
我想用scanf函数输入一个整数和一个字符,但它没有按我的意愿工作。
代码如下。
#include <stdio.h>
int main()
{
int a;
char c;
scanf("%d",&a);
scanf("%2c",&c);
printf("%d%c",a,c);
return 0;
}
我尝试从终端输入12a (a后面有一个空格),但输出的不是“12a”而是“32a”。
我也试过一步步运行上面的代码,发现第一个scanf的时候a的值为12,而第二个scanf的a的值为a ” 32 岁了。
我想弄清楚为什么第二个scanf 改变了a 的值,没有呈现出来。
【问题讨论】:
-
你应该检查
scanf()的返回值是否成功。 -
您正试图将两个符号读入单个
char变量