#include <stdio.h> int main(void) { char * name; puts("第一次接受键盘输入:1 2 3 4 5"); int d ; scanf("%d",&d); printf("打印1:%d\n", d ); //清空缓冲区 while(getchar() != '\n') puts("消费开始..."); //continue; puts("第二次接受键盘输入:6 7 8 9 10"); int d1 ; scanf("%d",&d1); printf("消费1:%d\n", d1 ); printf("消费2:%c\n", getchar()); printf("消费3:%c\n", getchar()); printf("消费4:%c\n", getchar()); //清空缓冲区 while(getchar() != '\n') continue; puts("请输入12345abcde"); fgets(name, 5, stdin); printf("首次消费:%s\n",name ); //清空缓冲区 // while(getchar() != '\n') // continue; printf("消费缓冲区:%c\n", getchar() ); printf("消费缓冲区:%c\n", getchar() ); printf("消费缓冲区:%c\n", getchar() ); /* 缓冲区数据产生: scanf()、fgets() 函数会将 键盘输入内容存储到缓冲区内(包括\n),当第二次调用scanf() 或者 getchar() 时,如果缓冲区内还有数据,会直接获取到缓冲区内的数据 清空缓冲区的方法: 通过getchar()将缓冲区的剩余数据消费完 while(getchar() != '\n') continue; */ return 0; }