fstream檔案中定義了三種支援檔案io的型別,ifstream提供讀檔案的功能,ofstream提供寫檔案的功能,fstream提供讀寫檔案的功能。因為它們分別是從istream,ostream,iostream繼承來的,所以可以使用操作符(《和》)進行格式化的輸入輸出,條件流狀態也可以使用。
除了繼承下來的函式,檔案輸入輸出流提供了使用要繫結的檔名作為引數的建構函式,同時提供了open和close函式。
開啟檔案流有兩種方式,一種是使用檔名(c++中使用c語言風格的檔名,如果檔名是string型別,則需要string.c_str())作為引數來構造檔案輸入輸出流,這樣檔案流就自動的處於開啟狀態。如果定義檔案輸入輸出流時沒有使用檔名的建構函式,例如: istream in;則需要呼叫in的open函式來將流與檔案繫結。可以直接檢測檔案流的狀態,如if(in)。通過close函式可以關閉檔案流與某一檔案的繫結。
關閉檔案流並不能改變檔案流的狀態,使用clear操作可以清除檔案流的狀態,像檔案流被重新建立一樣。如果需要重用這個檔案流,則需要關閉上乙個檔案流的同時使用clear來清除檔案流的狀態。
在開啟檔案時,都需要指定檔案模式,不顯示指定檔案模式時根據流型別的不同來設定的預設的檔案模式。下面列出不同的檔案模式:
in 開啟檔案做讀操作
out 開啟檔案做寫操作
ate 開啟檔案之後立即將檔案定位在檔案尾
trunc 開啟檔案時清空已存在的
binary 以二進位制模式進行io操作
iostream標準庫支援記憶體中的輸入輸出,只要將流與儲存在記憶體中的string物件繫結起來即可。stream標頭檔案中包含了istringstream,ostringstream,stringstream三個型別,提供string讀,寫和讀寫的功能。
除了基礎的輸入輸出流所具有的功能之外,stringstream類可以使用string作為引數來構造stringstream流,string物件被複製給stringstream物件中。
stringstream類的用法:
string line ,word;
while(getline(cin,line))
istringstream stream(line);
while(stream>>word)
//do something!
此外,可以使用stringstream來格式化輸入與輸出。
C 標準庫 IO 操作
c 通過以下幾個類支援檔案的輸入輸出 開啟檔案 open a file 對這些類的乙個物件所做的第乙個操作通常就是將它和乙個真正的檔案聯絡起來,也就是說開啟乙個檔案。被開啟的檔案在程式中由乙個流物件 stream object 來表示 這些類的乙個例項 而對這個流物件所做的任何輸入輸出操作實際就是對...
c標準IO庫使用
雖說大部分場合能用c的都可以用c 代替,但是對於開發庫,還是用c效率高。下面介紹c標準io庫 檔案操作標準i o庫函式 fopen fread fwrite fclose fflush fseek fgetc getc getchar fputc putc putchar fgets gets pr...
APUE 再讀之 標準IO庫
本章介紹標準io庫 1.file物件 標準io庫一切函式基於file物件。file物件包含了管理該流的所有資訊 檔案描述符,指向流快取的指標,快取的長度,快取的位元組數以及出錯標識等 2.標準輸入,標準輸出和標準出錯。對應非標準io stdin fileno,stdout fileno,stderr...