C 輸入cin應用詳解

2021-07-04 12:25:40 字數 1060 閱讀 8234

輸入原理:

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

一:cin>>

1)該操作符是根據後面變數的型別讀取資料。

輸入結束條件 :遇到enter、space、tab鍵。

對結束符的處理 :丟棄緩衝區中使得輸入結束的結束符(enter、space、tab)

#include using namespace std;

int main()

測試一輸入:

12345[enter]

輸出:1234

53【分析】第一次輸入超長,字串按長度取了"1234",而』5′仍殘留在緩衝區中,所以第二次輸入字元沒有從鍵盤讀入,而是直接取了』5′,所以列印的ascii值是53(』5′的ascii值)。

測試二輸入:

12d45[enter]

輸出:12

d【分析】第二次輸出為d,說明自定義結束符時不丟棄緩衝區中的結束符

三.cin.getline()

cin.getline(陣列名,長度,結束符) 大體與 cin.get(陣列名,長度,結束符)類似。

區別在於:

cin.get()當輸入的字串超長時,不會引起cin函式的錯誤,後面的cin操作會繼續執行,只是直接從緩衝區中取資料。但是cin.getline()當輸入超長時,會引起cin函式的錯誤,後面的cin操作將不再執行。

#5:

#include 

using

namespace std;

int main ()

測試輸入:

12345[enter]

輸出:1234

-52【分析】與cin.get()的例子比較會發現,這裡的ch並沒有讀取緩衝區中的5,而是返回了-52,這裡其實cin>>ch語句沒有執行,是因為cin出錯了!cin的錯誤處理下次介紹。

C 輸入cin詳解

輸入原理 程式的輸入都建有乙個緩衝區,即輸入緩衝區。一次輸入過程是這樣的,當一次鍵盤輸入結束時會將輸入的資料存入輸入緩衝區,而cin函式直接從輸入緩衝區中取資料。正因為cin函式是直接從緩衝區取資料的,所以有時候當緩衝區中有殘留資料時,cin函式會直接取得這些殘留資料而不會請求鍵盤輸入 1 incl...

C 輸入cin詳解

輸入原理 程式的輸入都建有乙個緩衝區,即輸入緩衝區。一次輸入過程是這樣的,當一次鍵盤輸入結束時會將輸入的資料存入輸入緩衝區,而cin函式直接從輸入緩衝區中取資料。正因為cin函式是直接從緩衝區取資料的,所以有時候當緩衝區中有殘留資料時,cin函式會直接取得這些殘留資料而不會請求鍵盤輸入 1 incl...

C 輸入cin詳解

輸入原理 程式的輸入都建有乙個緩衝區,即輸入緩衝區。一次輸入過程是這樣的,當一次鍵盤輸入結束時會將輸入的資料存入輸入緩衝區,而cin函式直接從輸入緩衝區中取資料。正因為cin函式是直接從緩衝區取資料的,所以有時候當緩衝區中有殘留資料時,cin函式會直接取得這些殘留資料而不會請求鍵盤輸入 1 incl...