C++:流
流:不要把他理解的太復雜,就簡單的理解為流水,從一個地方輸送到另外一個地方。從數據層面理解:數據輸入和輸出的過程也是數據傳輸的過程。數據像水一樣從一個地方流動到另一個地方,因此,在 C++ 中將此過程稱為 “流(stream)”。
比如c++中的輸入輸出流,就是cin,cout。分別用于從鍵盤輸入數據和向屏幕輸出數據(簡稱為標準 I/O)。除此之外,程序還可以從文件中讀入數據,以及向文件中寫入數據(簡稱為文件 I/O)。
在 C++ 的標準類庫中,將用于進行數據輸入輸出的類統稱為“流類”。cin 是流類 istream 的對象,cout 是流類 ostream 的對象。要使用流類,需要在程序中包含 iostream 頭文件。
iostream 頭文件中定義了四個標準流對象,它們是 cin、cout、cerr 和 clog。
- cin 對應于標準輸入流,用于從鍵盤讀取數據,也可以被重定向為從文件中讀取數據。
- cout 對應于標準輸出流,用于向屏幕輸出數據,也可以被重定向為向文件寫入數據。
- cerr 對應于標準錯誤輸出流,用于向屏幕輸出出錯信息,不能被重定向。
- clog 對應于標準錯誤輸出流,用于向屏幕輸出出錯信息,不能被重定向。
cerr 和 clog的區別在于:cerr 不使用緩沖區,直接向顯示器輸出信息;而輸出到 clog 中的信息會先被存放到緩沖區,緩沖區滿或者刷新時才輸出到屏幕。
cout 可以被重定向,而 cerr 不能。所謂重定向,就是將輸入的源或輸出的目的地改變。例如,cout 本來是輸出到屏幕上的,但是經過重定向,本該輸出到屏幕上的東西就可以被輸出到文件中。
freopen("test.txt", "w", stdout); //將標準輸出重定向到 test.txt文件
freopen 是一個標準庫函數,第二個參數 w 代表寫模式,第三個參數代表標準輸出。該語句的作用是將標準輸出重定向為 test.txt 文件。重定向之后,所有對 cout 的輸出都不再出現在屏幕上,而是出現在 test.txt 文件中
cin 也是可以被重定向的。如果在程序中加入
freopen("input.dat", "r", stdin);
第二個參數 r 代表讀入方式,第三個參數 stdin 代表標準輸入。執行此語句后,cin 就不再從鍵盤讀入數據,而是從 input.dat 文件中讀人數據,input.dat 文件中有什么,就相當于從鍵盤輸入了什么。
文件參照博客:https://mp.csdn.net/console/editor/html/104722549
?
總結
- 上一篇: c++:文件操作1 文件的打开
- 下一篇: C++:析构函数