输入缓冲区:
键盘->键盘缓冲区->输入缓冲区->程序
输入缓冲区清除的条件:只有当其中的内容被读走的时候才会清除
/**************************************************/
/*输入缓冲区*/
/**************************************************/
#include <stdio.h>
int main()
{
int a,b,c,d,e;
if(scanf("%d",&a)==0)
{
scanf("%*[^\n]");
scanf("%*c");
}
scanf("%d",&b);
scanf("%d",&c);
scanf("%d",&d);
scanf("%d",&e);
printf("%d %d %d %d %d\n",a,b,c,d,e);
return 0;
}
输出缓冲区:
程序->输出缓冲区->屏幕
条件:
<1>\n
<2>程序结束
<3>输出缓冲区满(4kb)
<4>人工刷新(fflush(stdout))
/***********************************************/
/*输出缓冲区*/
/***********************************************/
#include <stdio.h>
int main()
{
printf("hello");
fflush(stdout);
while(1);
}
<1>char* gets(char*)从输入缓冲区读取一行
不考虑缓冲区的大小,可能溢出
<2>fgets(char* str,size_t size,FILE* stream)会在读入字符串的后面自动加上'\0'
char* str:指向缓冲区的指针
size_t size:缓冲区的大小
FILE* stream:文件指针(stdin)