您好,登錄后才能下訂單哦!
在C語言中,我們通常會使用 scanf 和 printf 來對數據進行輸入輸出操作。在C++語言中,C語言的這一套輸入輸出庫我們仍然能使用,但是 C++ 又增加了一套新的、更容易使用的輸入輸出庫。
【例1】簡單的輸入輸出代碼示例:
#include<iostream>using namespace std;int main(){int x;float y;cout<<"Please input an int number:"<<endl;cin>>x;cout<<"The int number is x= "<<x<<endl;cout<<"Please input a float number:"<<endl;cin>>y;cout<<"The float number is y= "<<y<<endl; 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 進行輸出時需要緊跟
<<
運算符,使用 cin 進行輸入時需要緊跟
>>
運算符,這兩個運算符可以自行分析所處理的數據類型,因此無需像使用 scanf 和 printf 那樣給出格式控制字符串。
第6行代碼表示輸出
"Please input a int number:"
這樣的一個字符串,以提示用戶輸入整數,其中
endl
表示換行,與C語言里的
\n
作用相同。當然這段代碼中也可以用
\n
來替代
endl
,這樣就得寫作:
cout<<"Please input an int number:\n";
endl 最后一個字符是字母“l”,而非阿拉伯數字“1”,它是“end of line”的縮寫。
第7行代碼表示從標準輸入(鍵盤)中讀入一個 int 型的數據并存入到變量 x 中。如果此時用戶輸入的不是 int 型數據,則會被強制轉化為 int 型數據。
第8行代碼將輸入的整型數據輸出。從該語句中我們可以看出 cout 能夠連續地輸出。同樣 cin 也是支持對多個變量連續輸入的,如下所示。
【例2】cin 連續輸入示例:
#include<iostream>using namespace std;int main(){int x;float y;cout<<"Please input an int number and a float number:"<<endl;cin>>x>>y;cout<<"The int number is x= "<<x<<endl;cout<<"The float number is y= "<<y<<endl; 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 更加靈活易用。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。