C 檔案操作

2021-10-04 09:26:31 字數 1986 閱讀 1927

2023年華科考了一道檔案操作題,所以在這裡補充一下相關知識。

檔案操作標頭檔案,可讀可寫,定義好標頭檔案好之後對檔案的操作需要開啟對應檔案。

fstream f;

f.open

("abc.cpp"

,ios::in)

;

上面是開啟檔案的一般流程,第一句是定義檔案指標,第二句的open第乙個引數是檔名,第二個引數是控制檔案的讀寫情況,此時成功即返回檔案指標,f就與abc.cpp檔案相對應了!

這裡的第二個引數常用的有以下4個:

對檔案操作重要的是輸入輸出,fstream由iostream引申而來,f可以代替cin和cout進行輸入輸出,即在我們正常的輸入輸出中,只要把cin或cout變成對應的檔案指標就可以對該檔案輸入輸出。

承接上面定義,下面**表示從f指向檔案中輸入一行

string  s;

getline

(f,s)

輸入輸出解決了,還有乙個重點就是控制輸入輸出的位置通俗而言,檔案剛開啟會有乙個預設指向檔案開頭的指標,在這裡對檔案操作有檔案內指標會自動移動到下乙個位置,如果是上面對行操作會自動移動到下一行。

如果我們需要改變位置就用到seekg() 和seekp() 分布是改變輸入和輸出指標的位置,其有兩個引數,意義如下。

ios::beg 檔案頭

ios::end 檔案尾

ios::cur 當前位置

例子:file.seekg(0,ios::beg); //讓檔案指標定位到檔案開頭

file.seekg(0,ios::end); //讓檔案指標定位到檔案末尾

file.seekg(10,ios::cur); //讓檔案指標從當前位置向檔案末方向移動10個位元組

file.seekg(-10,ios::cur); //讓檔案指標從當前位置向檔案開始方向移動10個位元組

file.seekg(10,ios::beg); //讓檔案指標定位到離檔案開頭10個位元組的位置

最後一步就是一些判斷標誌,檔案是否開啟,檔案位置是否到了結尾等

is_open( ) 判斷檔案是否處於開啟的狀態。如果是,返回true;如果不是,返回false

eof() 判斷讀檔案是否到達檔案末尾。如果是,返回true;如果不是,返回false

例題:

2023年華科機試第二題

將第一題的源**儲存為abc.c檔案,並且要求abc.c檔案中有相當數量的注釋,包括//和/……/兩種形式的注釋

(1)讀取abc檔案的內容,將其顯示在控制台上,並為每行**增加乙個符號。(10)

(2)使源**中的//型別的注釋內容不顯示在控制台中。(10)

(3)使源**中的/……/型別的注釋內容不顯示在控制台中。(10)

#include

#include

#include

using

namespace std;

intmain()

//如果是行注釋

else

if(s[i+1]

=='*'

)break;}

}}cout<

"!"<

} f.

close()

;return0;

}

abc檔案

對應結果:

C 檔案操作與C 的檔案操作

c filestream 檔案流 主要用於使用二進位制方式讀寫檔案資料,可讀取任何檔案 建立filestream物件 e 建立filestream物件 filemode 指定系統開啟檔案的方式filestream fileaccess 指定檔案的訪問方式 read唯讀,write只寫,readwri...

C 檔案操作

c 追加檔案 sw.writeline 追逐理想 sw.writeline kzlll sw.writeline net筆記 sw.flush sw.close c 拷貝檔案 string orignfile,newfile file.copy orignfile,newfile,true c 刪除...

C 檔案操作

c 檔案操作 軒軒 發表於 2006 2 18 12 40 16 在c 中,有乙個stream這個類,所有的i o都以這個 流 類為基礎的,包括我們要認識的檔案i o,stream這個類有兩個重要的運算子 1 插入器 向流輸出資料。比如說系統有乙個預設的標準輸出流 cout 一般情況下就是指的顯示器...