(1)標準輸入流物件
能向記憶體緩衝區輸入資料的裝置稱為輸入流。比如:鍵盤、檔案。
(2)標準輸出流物件
能將記憶體緩衝區的資料儲存起來,或者顯示(總之是從記憶體緩衝區讀取資料)的裝置稱為輸出流。比如:鍵盤、檔案。
(3)三個標準輸出流之間的關係
引數預設情況下,cerr
、clog
和cout
作用一樣。cerr
和clog
的區別在於cerr
不使用緩衝區,直接向顯示器輸出資訊;而輸出到clog
中的資訊先會被存放在緩衝區,緩衝區滿或者重新整理時才輸出到螢幕。
(1)輸出重定向
#include
using
namespace std;
intmain()
/*t.txt:
3.14 123
輸出:3.14,123
*/
cerr和clog的作用:我們不希望將錯誤資訊或者日誌資訊輸出到輸出檔案上,而此時cout
又關聯著輸出檔案。此時就可以使用cerr
或者clog
,進行輸出。
(2)輸入重定向
#include
using
namespace std;
intmain()
(1)判斷流結束的常用**:int x;
while
(cin>>x)
return
0;
(2)怎樣才叫檔案結束?
(3)為什麼cin>>x
的返回值可以用來作為判斷是否結束的邏輯表示式的條件語句?
因為cin
所屬類內部對於強制型別轉換運算子進行了過載,並將cin
型別的值 強轉為布林型別,使其返回布林型別。
istream &
operator
>>
(int
& a)
(1)函式1istream &
getline
(char
* buf,
int bufsize)
;
函式功能:從輸入流中讀取bufsize-1
個字元到緩衝區buf
,或讀到碰到\n
為止(哪個先到算哪個)。
(2)函式2
istream &
getline
(char
* buf,
int bufsize,
char delim)
;
函式功能:從輸入流中讀取bufsize-1
個字元到緩衝區buf,或讀到碰到delim
字元為止(哪個先到算哪個)。引數delim
就是分隔符。
(3)函式3
bool
eof(
);
函式功能:判斷輸入流是否結束。
(4)函式4
int
peek
()
函式功能:返回下乙個字元,但不從流中去掉。
應用:有時我們需要知道下次讀取的資料是什麼型別的,以做不同的應對(用string
變數存、int
變數存等)。這時就可以利用peek函式。
(5)函式5
istream &
putback
(char c)
;
函式功能:將字元ch
放回輸入流。
(6)函式6
istream &
ignore
(int ncount =1,
int delim =
eof)
;
函式功能:從流中刪掉最多ncount個
字元,遇到eof
時結束。eof
一般值為-1
。
(7)過載的函式1和函式2的區別與聯絡
兩個函式都會自動在buf
中讀入資料的結尾新增\0
。\n
或
delim
都不會被讀入buf
,但會被從輸入流中取走。如果輸入流中
\n
或delim
之前的字元個數達到或超過了bufsize
個,就導致讀
入出錯,其結果就是:雖然本次讀入已經完成,但是之後的讀入就
都會失敗了
注意:可以用if(!cin.getline(...))
判斷輸入是否結束。
getline
函式應用非常廣泛,其中有一些細節需要注意一下。
#include
using
namespace std;
intmain()
/*輸入:
12 abcd↙
輸出:abcd (空格+abcd)
輸入12↙
程式立即結束,無輸出。
*/
12
被存入x
中。而後面的90
個字元,或者遇到(\n
)結束 作為存入buf
中。getline
函式能夠讀取空格。 因此輸出空格加abcd
。
因為getline讀到留在流中的\n
就會返回。
輸入輸出相關的類
1 標準輸入流物件 能向記憶體緩衝區輸入資料的裝置稱為輸入流。比如 鍵盤 檔案。2 標準輸出流物件 能將記憶體緩衝區的資料儲存起來,或者顯示 總之是從記憶體緩衝區讀取資料 的裝置稱為輸出流。比如 鍵盤 檔案。3 三個標準輸出流之間的關係 引數預設情況下,cerr clog和cout作用一樣。cerr...
輸入輸出類的區別
如果你是讀取文字類資料,建議採用reader類,如inputstreamreader或bufferedreader之類的,可以省去這個疑慮。如果非要用stream流,讀取byte陣列,建議將資料全部讀上來再轉換為string,不然你必須要知道該檔案的編碼格式。fileinputstream 適用於位...
快速輸入輸出類(C )
我們知道,cin cout是很慢的,所以我們經常scanf printf。但是如果要求更嚴格一些,速度要更快,該怎麼辦呢?有一種解決辦法,那就是 快速輸入輸出。快速輸入輸出採用getchar 和putchar 函式,用了數字累加的方法輸入 輸出數。我們也可以把快速輸入輸出定義成類,就像cin cou...