當前位置:才華齋>計算機>C語言>

C++ cin輸入流詳解

C語言 閱讀(3.26W)

標準輸入流是從標準輸入裝置(鍵盤)流向程式的資料。在標頭檔案iostream.h中定義了cin、cout、cerr、clog 4個流物件,cin是輸入流,cout、cerr、clog是輸出流。下面是小編為大家整理的C++ cin輸入流詳解,歡迎參考~

C++ cin輸入流詳解

cin是istream類的物件,它從標準輸入裝置(鍵盤)獲取資料,程式中的變數通過流提取符“>>”從流中提取資料。流提取符“>>”從流中提取資料時通常跳過輸入流中的空格、tab鍵、換行符等空白字元。

注意:只有在輸入完資料再按回車鍵後,該行資料才被送入鍵盤緩衝區,形成輸入流,提取運算子“>>”才能從中提取資料。需要注意保證從流中讀取資料能正常進行。

  例如:

int a,b;

cin>>a>>b;

若從鍵盤上輸入

21 abc↙

變數a從輸入流中提取整數21,提取操作成功,此時cin流處於正常狀態。但在變數b準備提取一個整數時,遇到了字母a,顯然提取操作失敗了,此時,cin流被置為出錯狀態。只有在正常狀態時,才能從輸入流中提取資料。

當遇到無效字元或遇到檔案結束符(不是換行符,是檔案中的資料已讀完)時,輸入流cin就處於出錯狀態,即無法正常提取資料。此時對cin流的.所有提取操作將終止。在 IBM PC及其相容機中,以Ctrl + Z表示檔案結束符。在UNIX和Macintosh系統中,以 Ctrl + D表示檔案結束符。當輸入流cin處於出錯狀態時,如果測試cin的值,可以發現它的值為false(假),即cin為0值。如果輸入流在正常狀態,cin的值為true(真),即cin為 一個非0值。可以通過測試cin的值,判斷流物件是否處於正常狀態和提取操作是否成功。如:

if(!cn) //流cin處於出銷狀態,無法正常提取資料

cout<<"error 56="" 89="" 100="" using="" namespace="" int="" float="" enter="" the="" return="" grade:="">>"提取100,賦給grade,進行if語句的處理。然後再遇到"/",認為是無效字元,cin返回0。迴圈結束,輸出"The end."。

在不同的C++系統下執行此程式,在最後的處理上有些不同。以上是在GCC環境下執行程式的結果,如果在VC++環境(筆者使用win7系統)下執行此程式,在鍵入Ctrl + Z 時,需要敲擊兩次回車,程式才輸出"The end."。