C++ 的 I/O 發生在流中,流是字節序列。若是字節流是從設備(如鍵盤、磁盤驅動器、網絡鏈接等)流向內存,這叫作輸入操做。若是字節流是從內存流向設備(如顯示屏、打印機、磁盤驅動器、網絡鏈接等),這叫作輸出操做。ios
C/C++的學習裙【七一二 二八四 七零五 】,不管你是小白仍是進階者,是想轉行仍是想入行均可以來了解一塊兒進步一塊兒學習!裙內有開發工具,不少乾貨和技術資料分享!點擊這段文字進入羣聊編程
下列的頭文件在 C++ 編程中很重要。網絡
預約義的對象 cout 是 iostream 類的一個實例。cout 對象"鏈接"到標準輸出設備,一般是顯示屏。cout 是與流插入運算符 << 結合使用的,以下所示:app
#include <iostream>
using namespace std;
int main( )
{
char str[] = "Hello C++";
cout << "Value of str is : " << str << endl;
}工具
當上面的代碼被編譯和執行時,它會產生下列結果:學習
Value of str is : Hello C++開發工具
C++ 編譯器根據要輸出變量的數據類型,選擇合適的流插入運算符來顯示值。<< 運算符被重載來輸出內置類型(整型、浮點型、double 型、字符串和指針)的數據項。spa
流插入運算符 << 在一個語句中能夠屢次使用,如上面實例中所示,endl 用於在行末添加一個換行符。指針
預約義的對象 cin 是 iostream 類的一個實例。cin 對象附屬到標準輸入設備,一般是鍵盤。cin 是與流提取運算符 >> 結合使用的,以下所示:日誌
#include <iostream>
using namespace std;
int main( )
{
char name[50];
cout << "請輸入您的名稱:";
cin >> name;
cout << "您的名稱是:" << name << endl;
}
當上面的代碼被編譯和執行時,它會提示用戶輸入名稱。當用戶輸入一個值,並按回車鍵,就會看到下列結果:
請輸入您的名稱: cplusplus
您的名稱是: cplusplus
C++ 編譯器根據要輸入值的數據類型,選擇合適的流提取運算符來提取值,並把它存儲在給定的變量中。
流提取運算符 >> 在一個語句中能夠屢次使用,若是要求輸入多個數據,能夠使用以下語句:
cin >> name >> age;
這至關於下面兩個語句:
cin >> name;
cin >> age;
預約義的對象 cerr 是 iostream 類的一個實例。cerr 對象附屬到標準錯誤設備,一般也是顯示屏,可是 cerr 對象是非緩衝的,且每一個流插入到 cerr 都會當即輸出。
cerr 也是與流插入運算符 << 結合使用的,以下所示:
#include <iostream>
using namespace std;
int main( )
{
char str[] = "Unable to read....";
cerr << "Error message : " << str << endl;
}
當上面的代碼被編譯和執行時,它會產生下列結果:
Error message : Unable to read....
當上面的代碼被編譯和執行時,它會產生下列結果:
Error message : Unable to read....
預約義的對象 clog 是 iostream 類的一個實例。clog 對象附屬到標準錯誤設備,一般也是顯示屏,可是 clog 對象是緩衝的。這意味着每一個流插入到 clog 都會先存儲在緩衝區,直到緩衝填滿或者緩衝區刷新時纔會輸出。
clog 也是與流插入運算符 << 結合使用的,以下所示:
#include <iostream>
using namespace std;
int main( )
{
char str[] = "Unable to read....";
clog << "Error message : " << str << endl;
}
當上面的代碼被編譯和執行時,它會產生下列結果:
Error message : Unable to read....
經過這些小實例,咱們沒法區分 cout、cerr 和 clog 的差別,但在編寫和執行大型程序時,它們之間的差別就變得很是明顯。因此良好的編程實踐告訴咱們,使用 cerr 流來顯示錯誤消息,而其餘的日誌消息則使用 clog 流來輸出。