关于scanf读取回车字符的问题

今天在编写一个二叉树的程序时发现一个问题,如下:

#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);

改掉后运行结果为:

这样就可以了。

猜你喜欢

转载自blog.csdn.net/dms2017/article/details/84257167