C++中cin


C++中的輸入緩沖區,當我們從鍵盤輸入字符串的時候,需要敲一下回車才能將這個字符串輸入到緩沖區中,敲入的這個回車鍵會被換成換行鍵,這個換行符也同樣存儲在緩沖區中。

cin讀取數據是從緩沖區中讀取數據的,如果緩沖區為空,cin的成員函數會阻塞等待數據的到來,一旦緩沖區中有數據,就會觸發cin的成員函數去讀取數據。

cin>> 可以從鍵盤讀取想要的數據,以空格,tab鍵,以及換行來作為分隔符(分隔符的存在是必要的,因為如果沒有分隔符,就不能區分這些數據中的那部分是給這個變量,那部分是給另外的變量,當然也可以指定分隔符了)。

需要注意的是,當從緩沖區中讀入數據的時候,如果緩沖區的第一個字符是空格,tab鍵,以及換行這些分隔符的時候,cin>>會將其忽略掉並從緩沖區中清除,繼續讀取下一個字符,如果緩沖區為空,那么cin會繼續等待,如果讀取成功,字符后面的分隔符是殘留在緩沖區中的,cin>>不做處理。

cin.get()函數有多種函數重載的形式,可以讀取單個字符或者是一行數據,不過,對於空格,tab鍵,以及換行這些分隔符,是不做處理的,會當成一個字符對待。

相對應的,std命名空間中也有一個getline方法,遇到換行符就終止,並且將換行符中緩沖區中刪除,不影響下面的處理。

cin.get()讀取一行的時候,只能將字符串讀入C風格的字符數組中,但是getline可以將字符串讀入到string類型中,

cin.getline()讀入一行數據,上面已經提到過了,和cin.get()讀入一行的方式相比,cin.getline()不會將換行符殘留在緩沖區中。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM