MOOC C 筆記(七)輸入輸出流

2022-01-29 03:27:22 字數 2360 閱讀 8935

istream:是用於輸入的流類,cin就是該類的物件。

ostream:是用於輸出的流類,cout就是該類的物件。

ifstream:是用於從檔案讀取資料的類。

ofstream:是用與向檔案寫入資料的類。

iostream:是既能用於輸入,又能用於輸出的類。

fstream:是既能從檔案讀取資料,又能向檔案寫入資料的類。

輸入流物件:cin 與標準輸入裝置相連

輸出流物件:cout 與標準輸出裝置相連

cerr 與標準錯誤輸出裝置相連

clog 與標準錯誤輸出裝置相連

預設情況下

cerr<

#includeusing namespace std;
int main()可以用如下方法判斷輸入流結束:

while(cin>>x){}

如果是從檔案輸入,讀到檔案尾部,輸入流就算結束。

如果從鍵盤輸入,則在單獨一行輸入ctrl+z代表輸入流結束。

istream&getline(char *buf,int bufsize);

從輸入流中讀取bufsize-1個字元到緩衝區buf,或讀到碰到'\n'為止(哪個先到算哪個)。

istream&getline(char *buf,int bufsize,char delim)

從輸入流中讀取bufsize-1個字元到緩衝區buf,或讀到碰到delim字元為止(哪個先到算哪個)。

兩個函式都會自動在buf中讀入資料的結尾新增'\0'。'\n'或delim都不會被讀入buf,但會被從輸入流中取走。如果輸入流中'\n'或delim之前的字元個數達到或超過了buf'size個,就導致讀入出錯,其結果就是:雖然本次讀入已經完成,但是之後的讀入就都會失敗了。

可以用if(!cin.getline(...))判斷輸入是否結束。

bool eof()

判斷輸入流是否結束

int peek()

返回下乙個字元,但不從流中去掉。

istream &putback(char c)

將字元ch放回輸入流

istream&ignore(int ncount=1,int delim=eof);

從流中刪掉最多ncount個字元,遇到eof時結束。

整數流的基數:流操縱運算元dec,oct,hex,setbase

浮點數的精度(precision,setprecision)

設定域寬(setw,width)

使用者自定義的流操縱運算元

使用流操縱運算元

注意:使用流操縱運算元需要#include

流操縱運算元dec,oct,hex

int n=10;  

cout輸出結果:10a

1012

precision,setprecision

precision是成員函式,呼叫方式為:cout.precision(5)

setprecision是流操縱運算元,其呼叫方式為:cout設定域寬(setw,width)setw為運算元,width是成員函式

int w=4;

char string[10];

cin.width(w);

cin>>string;

cout輸入:1234

輸出:  123

注意:cin在讀入字串的時候會預留乙個地方給'\0',所以實際唯讀了三個字元。

寬度設定有效性是一次性的,在每次讀入和輸出之前都要設定寬度。

showpos非負數要顯示正號。

noshowpos非負數不顯示正號。

fixed表示以定點方式輸出。

scientific表示以科學計數法輸出。

setfill(ch)表示寬度不足時以ch字元填充空白。

left表示如果寬度不夠左對齊。

right表示右對齊。

internal表示寬度不足時,符號和數值分列左右,中間填充字元填充

ostream&tab(ostream &output)

cout<

之所以允許使用者這樣自定義流操縱運算元,是因為iostream裡對《進行了過載(成員函式)

ostream &operator

<

該函式內部會呼叫p所指向的函式,且以*this作為引數hex、dec、oct都是函式。

C 資料(七) 輸入輸出流

標準輸入流 對資料檔案的操作與檔案流 字串流 ceer流物件是標準出錯資訊流。ceer的作用是想標準出錯裝置輸出相關出錯資訊。clog流物件也是標準出錯資訊流,它與ceer的作用相同,都是在終端顯示器上顯示出錯資訊。它們間的區別是 ceer是不經緩衝區直接向顯示器上輸出有關資訊,而clog中的資訊存...

輸入輸出流

c 通過以下幾個類支援檔案的輸入和輸出 ofstream寫操作的檔案類由ostream引申而來 ifstream讀操作的檔案類由istream引申而來 fstream可同時讀寫操作的檔案類由iostream引申而來 ifstream in tian.txt 開啟乙個檔案 ifstream in in...

輸入輸出流

預定義流類的物件與通用的流運算子 1 cin 2 cout 3 cerr是ostream類物件,在標準輸出裝置上顯示錯誤資訊 不帶緩衝,立即顯示 輸入輸出流 ostream 和 ofstream istream 和 ifstream fstream 定義檔案輸出流物件 fstream outfile...