日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

缓冲区 cin() getline() getchar()

發布時間:2025/3/21 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 缓冲区 cin() getline() getchar() 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

程序的輸入都建有一個緩沖區,即輸入緩沖區。一次輸入過程是這樣的,當一次鍵盤輸入結束時會將輸入的數據存入輸入緩沖區,而cin函數直接從輸入緩沖區中取數據。正因為cin函數是直接從緩沖區取數據的,所以有時候當緩沖區中有殘留數據時,cin函數會直接取得這些殘留數據而不會請求鍵盤輸入

. cin>>

該操作符是根據后面變量的類型讀取數據。

輸入結束條件 :遇到Enter、Space、Tab鍵。

對結束符的處理 :將\n類似的結束符落在緩沖區里.

所以會有如下的程序和結果:

  • #include <iostream>
  • #include <string>
  • using namespace std;
  • int main()
  • {
  • string s1,s2;
  • cin>>s1;
  • getline(cin,s2);
  • cout<<s1<<endl;
  • cout<<s2<<endl;
  • ? ?return 0;
  • }
  • 只輸入了一行abc, 然后回車后就輸出一行abc, 一行空

    這是因為cin在緩沖區里丟下的\n 給后面的getline()當成輸入結束的標志了

    二.getline(cin, str)

    輸入結束條件:Enter鍵

    對結束符處理:將\n結束符從緩沖區里清除.

    所以會有如下的程序

  • #include <iostream>
  • #include <string>
  • using namespace std;
  • int main()
  • {
  • string s1,s2;
  • getline(cin,s1);
  • getline(cin,s2);
  • cout<<s1<<endl;
  • cout<<s2<<endl;
  • ? ?return 0;
  • }
  • 如果在輸入完abc后, 按兩次回車, 就會有如下結果

    三.getchar()

    清除緩沖區里的\n , 建議用getchar(), 這種方式最方便.

    四. 例子

    先輸入一個整數到變量n里 ,然后讀入n行字符串, 注意用getchar()消除\n

  • #include <iostream>
  • #include <string>
  • using namespace std;
  • int main()
  • {
  • int n;
  • string s1;
  • cin>>n;
  • getchar();
  • while(n--){
  • getline(cin, s1);
  • }
  • //process these strings
  • ? ?return 0;
  • }







  • 來自為知筆記(Wiz)

    轉載于:https://www.cnblogs.com/gremount/p/5788691.html

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的缓冲区 cin() getline() getchar()的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。