C 程式設計 C 面向流的輸入輸出

2021-09-26 13:56:26 字數 3664 閱讀 2849

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 從指定的流...