天天看點

matlab 類似cin,C++輸入輸出(cin和cout)

在C語言中,我們通常會使用 scanf 和 printf 來對資料進行輸入輸出操作。在C++語言中,C語言的這一套輸入輸出庫我們仍然能使用,但是 C++ 又增加了一套新的、更容易使用的輸入輸出庫。

【例1】簡單的輸入輸出代碼示例:

#include

using namespace std;

int main(){

int x;

float y;

cout<

cin>>x;

cout<

cout<

cin>>y;

cout<

return 0;

}

運作結果如下(↙表示按下Enter鍵):

Please input an int number:

8↙

The int number is x= 8

Please input a float number:

7.4↙

The float number is y= 7.4

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

在編寫 C++ 程式時,如果需要使用輸入輸出時,則需要包含頭檔案iostream,它包含了用于輸入輸出的對象,例如常見的cin表示标準輸入、cout表示标準輸出、cerr表示标準錯誤。

iostream 是 Input Output Stream 的縮寫,意思是“輸入輸出流”。

cout 和 cin 都是 C++ 的内置對象,而不是關鍵字。C++ 庫定義了大量的類(Class),程式員可以使用它們來建立對象,cout 和 cin 就分别是 ostream 和 istream 類的對象,隻不過它們是由标準庫的開發者提前建立好的,可以直接拿來使用。這種在 C++ 中提前建立好的對象稱為内置對象。

使用 cout 進行輸出時需要緊跟<>運算符,這兩個運算符可以自行分析所處理的資料類型,是以無需像使用 scanf 和 printf 那樣給出格式控制字元串。

第 6 行代碼表示輸出"Please input a int number:"這樣的一個字元串,以提示使用者輸入整數,其中endl表示換行,與C語言裡的\n作用相同。當然這段代碼中也可以用\n來替代endl,這樣就得寫作:

cout<

endl 最後一個字元是字母“l”,而非阿拉伯數字“1”,它是“end of line”的縮寫。

第 7 行代碼表示從标準輸入(鍵盤)中讀入一個 int 型的資料并存入到變量 x 中。如果此時使用者輸入的不是 int 型資料,則會被強制轉化為 int 型資料。

第 8 行代碼将輸入的整型資料輸出。從該語句中我們可以看出 cout 能夠連續地輸出。同樣 cin 也是支援對多個變量連續輸入的,如下所示。

【例2】cin 連續輸入示例:

#include

using namespace std;

int main(){

int x;

float y;

cout<

cin>>x>>y;

cout<

cout<

return 0;

}

運作結果:

Please input an int number and a float number:

8 7.4↙

The int number is x= 8

The float number is y= 7.4

第 7 行代碼連續從标準輸入中讀取一個整型和一個浮點型數字(預設以空格分隔),分别存入到 x 和 y 中。

輸入運算符>>在讀入下一個輸入項前會忽略前一項後面的空格,是以數字 8 和 7.4 之間要有一個空格,當 cin 讀入 8 後忽略空格,接着讀取 7.4。

初學者可能會覺得 cout、cin 的用法非常奇怪,它們既不是類似 printf()、scanf() 的函數調用,也不是關鍵字,請大家先保留這個疑問,我們會在《C++運算符重載》一章中為你揭開謎底。

cout、cin 的用法非常強大靈活,本節所展示的隻是最基本的功能,更多進階技巧将在後續章節中介紹。在以後的 C++ 程式設計中,我也推薦大家使用 cin、cout,它們比C語言中的 scanf、printf 更加靈活易用。