今天在编写一个二叉树的程序时发现一个问题,如下:
#include <stdio.h>
int main(){
int i;
char j;
scanf("%d",&i);
scanf("%c",&j);
printf("%d %c\n",i,j);
return 0;
}
在运行后结果为:

本来是 “2 d” 的结果却为什么输出“2”,我上网查了一下原来是%c将空格字符也给读取了,那怎么解决这问题呢?
我们可以在%c前加上一个空格,如下:
scanf(" %c",&j);
改掉后运行结果为:

这样就可以了。
在使用scanf函数时,%c会读取空格字符,导致数据输入错误。本文介绍了一种简单的方法来解决这个问题,只需在%c前加上一个空格即可。
6253

被折叠的 条评论
为什么被折叠?



