缓冲区与scanf printf

2020-04-02  本文已影响0人  kkkk小天使

一、知识点解释:

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结束了程序

上一篇 下一篇

猜你喜欢

热点阅读