天天看點

[從C到C++] 1.5 C+的輸入與輸出

在C語言中,通常會在采用格式化輸入輸出函數printf和scanf用于輸入或輸出資料或資訊。在C++語言中,C語言的這一套輸入輸出庫我們仍能使用,但是C++語言又自定義了一套新的、更容易使用的輸入輸出庫。

在C++程式中,輸入與輸出可以看做是一連串的資料流,輸入即可視為從檔案或鍵盤中輸入程式中的一串資料流,而輸出則可以視為從程式中輸出一連串的資料流到顯示屏或檔案中。

在編寫C++程式時,如果需要使用輸入輸出時,則需要包含頭檔案iostream。在iostream中定義了用于輸入輸出的對象,例如常見的

cin表示标準輸入、cout表示标準輸出、cerr表示标準錯誤 。

需要特别強調的是cin、cout、cerr不是C++中的關鍵字,其本質是函數調用,它們的實作采用的是C++的運算符重載,這些知識點将會在後續逐一介紹。其中cout和cerr的輸出目的地都是顯示器,但不同的是

cout是帶有緩沖的,而cerr則不帶緩沖。

在我們使用cout進行輸出時需要緊接着使用“<<”操作符,使用cin進行輸入時需要緊接着使用“>>”操作符,這兩個操作符可以自行分析所處理的資料類型,是以無需我們像使用scanf和printf那樣設定輸入輸出格式化語句。

[例1]C++簡單的輸入輸出代碼示例:

這段程式的功能是提示使用者輸入一個整型和一個浮點型數字,然後将其顯示在顯示器上,這段代碼的運作結果如下所示(↙表示使用者按下enter鍵):

語句cout<<"Please input a int number:"<>x;表示從标準輸入中讀入一個int型的資料并存入到x變量中。如果此時使用者輸入的不是int型資料,則會被強制轉化為int型資料。語句cout<<"The int number is x= "<

[例2]cin 連續輸入示例:

運作結果:

在例2中我們用cin>>x>>y;連續從标準輸入中讀取一個整型和一個浮點型數字,然後分别存入到x和y中。輸入操作符>>在讀入下一個輸入項前會忽略前一項後面的空格,如例2中,數字8和7.4之間有一個空格,當cin讀入8後忽略空格,接着讀取7.4。

當使用cin>>val輸入變量時,如果輸入一個變量到val中,則該表達式傳回true,否則傳回false。利用這一特性,我們可以連續輸入資料,如例3所示。

[例3]使用 cin 連續輸入資料:

這個程式從标準輸入中不斷地讀取資料并存入到val變量中,每讀入一個資料就求一次和,直至使用者輸入檔案結束符辨別時,程式才會輸出之前使用者輸入所有資料之和。

繼續閱讀