scanf在前getchar后一起使用,发现getchar没有被执行,为什么?请大家指教。

来源:百度知道 编辑:UC知道 时间:2024/09/21 12:40:20
#include <stdio.h>
main()
{ int a,b;
char c;
clrscr();
scanf("%d%d",&a,&b);
printf("test\n");
c=getchar();
/*scanf("%d",&c); */
printf("a=%d,b=%d,c=%c\n",a,b,c);
}
屏幕结果为:
3 4回车
程序跳出
按alt+F后屏幕如下:
3 4
test
a=3,b=4,c=

我用的是turbo c。上面似乎getchar这句就没有执行啊,为什么?

#include <stdio.h>
#include <stdlib.h>
main()
{ int a,b;
char c;
clrscr();
scanf("%d%d",&a,&b);
printf("test\n");
fflush(stdin);
c=getchar();/* scanf("%d",&c); */
printf("a=%d,b=%d,c=%c\n",a,b,c);
}

其实是执行了,因为getchar()函数可以接收空格和回车,所以c中应该接收的是回车,你可以在输出时可以按a,c,b的顺序输出就会知道了.

其实getchar执行了,它读取缓存中的回车符,输入时scanf只读了3 4,回车留在缓存中了.输出时也应该输出了回车

再来一个c=getchar();
看行不行 回车影响