scanf輸入、printf輸出緩衝區 & gets/fgets

輸入緩衝區:

   鍵盤->鍵盤緩衝區->輸入緩衝區->程序

   輸入緩衝區清除的條件:只有當其中的內容被讀走的時候纔會清除

   /**************************************************/

   /*輸入緩衝區*/

   /**************************************************/

   #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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章