C 檔案流的輸入與輸出

2021-09-07 19:39:13 字數 1788 閱讀 7016

1.引入標頭檔案fstream

fstream標頭檔案定義了用於檔案輸入的類ifstream和檔案輸出的類ofstream

2.寫檔案

1)建立乙個ofstream物件來管理輸出流

2)將該物件與檔案關聯起來

3)使用cout方式使用該物件,唯一區別是輸出將進入檔案,而不是螢幕。

4)關閉到檔案的連線

示例如下:

ofstream fout;

fout.open("test.txt");

fout<

fout.close();

建立物件和關聯檔案可使用建構函式合併到一步,以上**等價於:

ofstream fout("test.txt");

fout<

fout.close();

3.讀檔案1)建立乙個ifstream物件來管理輸入流

2)將該物件與檔案關聯起來

3)使用ifstream的方法讀檔案

4)關閉到檔案的連線

示例如下:

ifstream fin("test.txt");

char ch;

fin>>ch;//從檔案中讀取乙個字元

char buf[80];

fin>>buf;//從檔案中讀取乙個單詞

fin.getline(buf,80);//從檔案中讀取一行

string line;

getline(fin,line);//讀取一行轉換成字串

fin.close();

4.讀寫緩衝區

fstream流管理物件在使用cout或cin方式,讀或寫時,是通過緩衝區和檔案進行互動的,

而不是逐字節讀取或寫入檔案的。

關於close()函式,當流物件過期(如程式終止)時,到檔案的連線自動關閉,

也可使用cose()顯示關閉該連線。連線關閉後,將重新整理緩衝區。

與檔案的連線關閉後,並不會刪除流,fstream流物件和它管理的緩衝區仍然存在,

可以將流重新連線到檔案。

5.乙個簡單的讀寫檔案示例

#include#include#includeusing namespace std;

const string filename="test.txt";

int main()

;const char *file = "planets.dat";

inline void eatline()

int main()

{ using namespace std;

planet pl;

cout<>rec;

eatline();

if(rec<0||rec>=ct)

{cerr

cout<

cin>>pl.g;

finout.seekp(place);

finout.write((char*)&pl,sizeof pl)<

程式中,我們使用了乙個特別的流管理物件fstream,

fstream繼承子iostream,而iostream繼承自istream和ostream

因此fstream繼承了兩個緩衝區,乙個用於輸入,乙個用於輸出

並能同步化兩個緩衝區的處理。即輸入指標和輸出指標的位置始終相同。

這樣用乙個流管理物件,就可以同時進行讀和寫。

C 檔案輸入輸出流

dat 檔案 資料檔案 二進位制檔案字尾名為 bin 文字檔案 字尾名 txt doc.docx wps 以ascii 碼儲存資料的 檔案指標,用於指明其位置 檔案開關 fopen 第二個引數char 型別 需要 括起來 err fopen s fp1,file information.txt a ...

C 檔案輸入輸出流

寫在前面的話 c 中對檔案的操作跟c語言是有很大差別的,因此總結一下c 對檔案的操作。在c 中隊檔案的輸入輸出流和對記憶體的輸入輸出流以及對字串的輸入輸出流介面是一致的,如果輸入流能產生位元組,可以用乙個提取操作符從這個流中獲取資訊。這個提取符產生並格式化目的物件所期望的資訊型別。雖然輸入流用起來很...

C 流 檔案操作(輸入輸出流)

到目前為止,我們已經使用了iostream標準庫,它提供了cin和cout方法分別用於從標準輸入讀取流和向標準輸出寫入流。本教程介紹如何從檔案讀取流和向檔案寫入流。這就需要用到 c 中另乙個標準庫fstream,它定義了三個新的資料型別 資料型別 描述ofstream 該資料型別表示輸出檔案流,用於...