一、知识点解释:
1、printf 向终端输出字符串;scanf 接收终端的输入
2、缓冲区
(1)printf 应用程序将输出的内容先放入缓冲区,一个一个字符依次放,缓冲区再将所有字符显示在终端
(2)scanf 敲回车时,终端的所有内容全部进入缓冲区(\n也在),然后应用程序拿走需要的内容,但是\n还在缓冲区,再用getchar()拿走,当缓冲区没有内容时会等待用户输入
二、代码案例
#include <stdio.h>
/*
printf 向终端输出字符串
scanf 接收终端的输入
缓冲区:输入输出流 IO流 cout cin
*/
int main(){
char a;
printf("请输入a:");
scanf("%c", &a);
char b;
printf("请输入b:");
getchar();
scanf("%c", &b);
char c;
printf("请输入c:");
scanf("%c", &c);
printf("a=%c b=%c c=%c\n",a,b,c);
return 0;
}
三、运行结果
image.png四、解释:
1、输入a=x之后敲了一个空格
2、输入b之前有一个getchar()拿走了\n因此没有影响
3、输入c之前没有getchar(),因此c拿走了那个\n,不需要等待终端输入,直接在缓冲区拿走\n结束了程序
网友评论