首頁>技術>

C++ 的 I/O 發生在流中,流是位元組序列。如果位元組流是從裝置(如鍵盤、磁碟驅動器、網路連線等)流向記憶體,這叫做輸入操作。如果位元組流是從記憶體流向裝置(如顯示屏、印表機、磁碟驅動器、網路連線等),這叫做輸出操作

I/O 庫標頭檔案

下列的標頭檔案在 C++ 程式設計中很重要。

標準輸出流(cout)

預定義的物件 coutiostream 類的一個例項。cout 物件"連線"到標準輸出裝置,通常是顯示屏。cout 是與流插入運算子 << 結合使用的,如下所示:

#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 型、字串和指標)的資料項。

流插入運算子 << 在一個語句中可以多次使用,如上面例項中所示,endl 用於在行末新增一個換行符。

標準輸入流(cin)

預定義的物件 ciniostream 類的一個例項。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)

預定義的物件 cerriostream 類的一個例項。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....
標準日誌流(clog)

預定義的物件 clogiostream 類的一個例項。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 流來輸出。

25
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 基於Python進行相機校準