1, (constructor)
第一種不繫結檔案,後續用open() 繫結。
第二種繫結檔案 filename ,讀取模式預設引數為 ios_base::in可以省略。
default (1) ifstream();
initialization (2)
explicit ifstream (const char* filename, ios_base::openmode mode = ios_base::in);
explicit ifstream (const string& filename, ios_base::openmode mode = ios_base::in);
2,ifstream::open
開啟檔案filename,模式預設 ios_base::in
void open (const char* filename, ios_base::openmode mode = ios_base::in);
void open (const string& filename, ios_base::openmode mode = ios_base::in);
函式引數:
filename 要開啟檔案的檔名
mode 開啟檔案的方式
member constant
stands for
access
ininput file
讀的方式開啟檔案
outoutput
寫的方式開啟檔案
binary
binary
二進位制方式開啟
ateat end
開啟的時候定位到檔案末尾
所有操作都定位到檔案末尾
trunc
truncate
丟棄開啟前檔案存在的內容
3,ifstream:: is_open
bool is_open() const;
檔案流物件與檔案繫結,返回 true ,否則 false 。
4,ifstream:: close
void close(); //關閉檔案流
5,ifstream:: rdbuf
filebuf* rdbuf() const;
返回乙個 filebuf 物件指標,(the pointer to the internal filebuf object.)
6,std::istream::operator>>
輸入終端 cin 和 ifstream 都是 istream 的子類,所以輸入操作符 >> 用法相同。對變數進入輸入的時候過載了常用的資料型別。
7,istream::gcount
streamsize gcount() const;
返回最後乙個輸入操作讀取的字元數目。
可以修改這個返回值的函式有:get,getline,ignore,peek,read, readsome,putback and unget. 其中函式peek, putback and unget 被呼叫後gcount()返回值為0。
8,istream::get
single character (1): //讀取乙個字元,遇到'\n',也從流中取出。
int get(); //字元按 int 返回
istream& get (char& c); // 讀到c中
//讀取n個 c 風格字串到陣列s中,遇到'\n'(或delim)停止讀取,並把'\n'留在輸入流中,若要讀取多行,就要需要int get() 來取出'\n',才能讀下一行。
c-string (2):
istream& get (char* s, streamsize n);//預設delim是換行字元'\n'
istream& get (char* s, streamsize n, char delim) //指定讀取停止字元 delim
stream buffer (3): //內容讀取到 streambuf 物件中。
istream& get (streambuf& sb);//預設delim是換行字元'\n'
istream& get (streambuf& sb, char delim);//指定讀取停止字元 delim
#include // std::cout, std::streambuf, std::streamsize
#include // std::ifstream
using namespace std;
int main ()
return 0;
}
13、::putback
istream& putback (char c);
// 用法,從輸入流讀取乙個字元,再把它返回。
char c = std::cin.get();
std::cin.putback (c);
14,istream::unget
istream& unget();
// 返回最後一次讀取的字元到輸入流,類似putback()
char c = std::cin.get();
std::cin.unget();
15,istream::tellg
讀取輸入流中檔案指標的位置,返回值可轉化為 int。
streampos tellg();
// get length of file:
is.seekg (0, is.end);
int length = is.tellg();
is.seekg (0, is.beg);
16,istream::seekg
設定輸入流中檔案指標的位置。(1) 絕對位置 (2) 相對位置
1)istream& seekg (streampos pos);
(2)istream& seekg (streamoff off, ios_base::seekdir way);
value
offset is relative to…
ios_base::beg
beginning of the stream
ios_base::cur
current position in the stream
ios_base::end
end of the stream
17,ios::good
bool good() const;
bool eof() const;
bool fail() const;
bool bad() const;
18,ios::operator!
bool operator!() const;
//returns true if either failbit or badbit is set, and false otherwise.
// 有錯誤狀態返回 true
int main ()
C 輸入 輸出流
低階i o功能 如無格式的i o 通常指大量的位元組在裝置到記憶體或記憶體到裝置的簡單傳輸。高階i o功能 格式化i o 它將位元組組合成有意義的單元,如資料型別。對於大容量檔案的處理,使用無格式的i o可獲得最佳的效能。不帶引數值成員函式get 從指定的流中讀取乙個字元 即使是空格 並返回該字元作...
C 輸入輸出流
一 c 流的概念 在c 語言中,資料的輸入和輸出 簡寫為i o 包括對標準輸入裝置鍵盤和標準輸 出裝置顯示器 對在外存磁碟上的檔案和對記憶體中指定的字串儲存空間 當然可 用該空間儲存任何資訊 進行輸入輸出這三個方面。對標準輸入裝置和標準輸出設 備的輸入輸出簡稱為標準i o,對在外存磁碟上檔案的輸入輸...
C 輸入 輸出流
一 流低階i o功能 如無格式的i o 通常指大量的位元組在裝置到記憶體或記憶體到裝置的簡單傳輸。高階i o功能 格式化i o 它將位元組組合成有意義的單元,如資料型別。對於大容量檔案的處理,使用無格式的i o可獲得最佳的效能。二 成員函式get和getline 不帶引數值成員函式get 從指定的流...