c cin常用總結

2021-08-25 11:01:23 字數 1445 閱讀 1102

從標準輸入(鍵盤)寫入的資料會都存放在輸入快取區,當輸入快取區有資料時,cin會直接從輸入快取區讀取,而當輸入緩衝區沒有資料時,cin會掛起請求使用者輸入資料;

從標準輸入寫入資料,按enter鍵結束此次輸入,而cin >> x;讀取一次資料結束的標誌是空白(包括空格,製表符tab,回車)

表示式cin >> x;

cin 是istream類的乙個物件,表示式cin >> x的返回值;

int i = 2;

cin >> i;

cout << i;

//輸入w,與期望值i的型別int不同,表示式cin >> i返回false,x 的值變為0

//輸出0

綜上,while(cin >> x)當輸入的資料型別與x的型別相同時,會一直執行迴圈,當輸入的型別與預期型別不用時結束迴圈;

一般用於給整形陣列或浮點型陣列賦值,整形陣列和浮點型陣列不可對陣列整體賦值,字元陣列可整體對陣列賦值,如

int array[10];

cin >> array; //會報錯

//輸入 5 6 2 1 3 7 8 9

char str[10];

cin >> str;

cout << str;

//輸入 dsfds

//輸出 dsfds

使用while(cin >> array[idx++])給整形或浮點型陣列賦值

int array1[10];

double array2[10];

int idx = 0; //陣列下標索引

while(cin >> array1[idx++])

//會從陣列下標0開始給陣列賦值,當標準輸入型別與陣列型別不同時,結束迴圈

理解cin>>x;的返回值特性後也就好理解給多個變數賦值cin >> x >> y;的原理了,cin >> x賦值成功返回cin物件,再執行cin >> y;對y賦值,cin >> x 賦值失敗時,x的值變為0,y的值不變;

有兩種讀取方式

char c1;

c1 = cin.get()

cin.get(ci)

cin.get()會從輸入緩衝區讀取乙個字元(即使是換行符也能讀取),

cin.get(array,size)和cin.getline(array,size)都用來讀取一行資料,通過回車鍵來確定結尾,引數包括儲存輸入行陣列名稱,和讀取長度size,如果size=20,則最多讀取19個字元,最後一位用於儲存空字元;

區別:為什麼有時使用cin.get(array,size)讀取一行而不是使用cin.getline(array,size)呢?

使用cin.get(array,size)讀取一行後,再使用cin.get()讀取檢視下一字元是不是換行符即可知道停止讀取的原因,是因為已經讀取了整行或者是由於陣列已經被填滿呢;

c cin使用總結

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

C cin學習筆記

更新中 1.錯誤處理 重要函式 bool cin.good bool cin.bad bool cin.fail bool cin.eof 這四個函式用來測試相應的標誌位是否為1,具體如下 failbit eofbit badbit 所以,ios failbit 100b ios eofbit 01...

C cin速度優化

很多c 的初學者可能會被這個問題困擾,經常出現程式無故超時,最終發現問題處在cin和cout上,甚至有些老oier也會被這個問題困擾,每次只能打scanf和printf,然後一堆的佔位符巨麻煩 這是因為c 中,cin和cout要與stdio同步,中間會有乙個緩衝,所以導致cin,cout語句輸入輸出...