關於getchar()cin>> 緩衝區的一點發現

 

#include<iostream>                                  首先看到右邊這些代碼 我們輸入3  然後按下回車  此時3被送入鍵盤緩衝區  
using namespace std;                               但是cin沒辦法讀入回車鍵   所以此時緩衝區還有一個回車鍵未讀取  接着
int main()
{                                                                 回車鍵被gets 讀取  然後puts 輸出  所以出現兩個換行符  接下來輸入 ha ta  
  int it;                                                         結果如下 
  cin>>it;                                                    
  char a[10];
  while(it--)
  {
  gets(a);
  puts(a);
  }

 

};

        若在while前面加入getchar();此時我可以有3個輸入  且結果如右圖   

        這是因爲cin輸入的回車被getchar()所讀取  。

 

 

       若在gets前面加上getchar();此時結果就不一樣  如右圖              

        這是因爲循環進行了三次getchar();第一次讀取了回車  

     後來兩次讀取了首字母。                                              

 

 

 

 

 

 

 

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