istream類過載了抽取運算子<< ,>>, 所以cin >> 支援c++內建的所有基本資料型別。cin物件將標準輸入表示為位元組流,然後根據抽取 運算子<
不同版本的抽取運算子檢視輸入流的方法是相同 的。如果輸入的前面一部分字元為空白(空格、換行符、和製表符),他們會跳過,直到遇到非空白字元。當輸入沒有滿足程式期望的時候,比如對於乙個int型別的變數a,卻輸入字元h,這種情況下,抽取運算發將不會改變變數a的值,並返回0,經常被放在迴圈條件中來終止迴圈。
測試**如下:
[cpp]view plain
copy
//check_it.cpp -- checking for valid input
#include
intmain()
cout <
<
cout <
<
return
0;
}
執行效果如圖:
由於輸入被緩衝。因此通過鍵盤輸入的第二行在使用者按下回車鍵之前,不會被傳送給程式。然而迴圈在字元z處停止了對輸入的處理,因為z不予int型別相匹配。輸入與預期格式不匹配反過來將導致表示式cin>>input的返回值為false,因此while迴圈被終止。
輸入 輸出與資料型別
輸出 console.write 不換行 console.writeline 換行 輸入 console.readline 括號裡不寫任何東西 接受一下直至接收到回車命令之前的所有字元 乙個等號表示賦值號 加號在遇到字串型別時時拼接作用 案例 輸入姓名,年齡,工作單位,整合成一句流暢的話 1 con...
解決cin因為輸入錯誤的資料型別進入死迴圈的問題
問題 如果按照下述的 來檢查使用者的輸入是否合法,是不夠的,當輸入乙個與期望不同的資料型別後,cin的狀態會變成fail,當下次執行cin會直接跳過,這樣就變成了死迴圈。int a while 1 解決 先用cin.clear 將cin的狀態恢復初始態,再使用getchar 將快取清空 必要的一步,...
SQL SERVER資料型別與C 資料型別對照表
sql server型別 c 型別 精確數字 bigint 從 2 63 9223372036854775808 到 2 63 1 9223372036854775807 的整型資料 所有數字 儲存大小為 8 個位元組。int64 int從 2 31 2,147,483,648 到 2 31 1 2...