C C 檔案讀寫

2021-07-03 16:22:20 字數 2933 閱讀 4940

c語言:

1.二進位制檔案寫

#includevoid main()

; file *fp = null; //檔案指標

fp = fopen("text2.txt","w"); //開啟檔案

while(!fp) //開啟失敗

; file *fp = null; //檔案指標

fp = fopen("text3.txt","w"); //開啟檔案

while(!fp) //開啟失敗

//插入後,立即重新整理stdout和stderr

該列舉量說明中每乙個列舉量實際對應兩位元組資料(16位)中的乙個位,所以可以同時採用幾個格式控制,只要把對應位置1即可,這樣既方便又節約記憶體。取多種控制時,用或「|」運算子來合成,合成為乙個長整型數,在ios中為:

protected:

long x_flags;

類ios中還設定了三個輸入輸出流格式控制標誌:

protected:

int x_precision; //標誌浮點數精度,預設為6位

int x_width; //輸出域寬,預設域寬為0,

//重設域寬只對其後第一輸出項有效,如域寬不足,則不受限制

char x_fill; //標誌域寬有富餘時填入的字元

標準裝置輸入是最不安全的,注意以下幾點,可以避免錯誤:

1.  cin為緩衝流。鍵盤輸入的資料儲存在緩衝區中,當要提取時,是從緩衝區中拿。如果一次輸入過多,會留在那兒慢慢用,如果輸入錯了,必須在回車之前修改,如果回車鍵按下就無法挽回了。只有把輸入緩衝區中的資料取完後,才要求輸入新的資料。不可能用重新整理來清除緩衝區,所以不能輸錯,也不能多輸!

2.  輸入的資料型別必須與要提取的資料型別一致,否則出錯。出錯只是在流的狀態字state(列舉型別io_state)中對應位置位(置1),程式繼續。所以要提高健壯性,就必須在程式設計中加入對狀態字state的判斷。

3.  空格和回車都可以作為資料之間的分格符,所以多個資料可以在一行輸入,也可以分行輸入。但如果是字元型和字串,則空格(ascii碼為32)無法用cin輸入,字串中也不能有空格。回車符也無法讀入。

檔案的開啟與關閉

檔案的使用步驟如下:

1.說明乙個檔案流物件,這又被稱為內部檔案:

ifstream ifile;//只輸入用

ofstream ofile;//只輸出用

fstream iofile;//既輸入又輸出用 

2.使用檔案流物件的成員函式開啟乙個磁碟檔案。這樣在檔案流物件和磁碟檔名之間建立聯絡。檔案流中說明了三個開啟檔案的成員函式。

void ifstream::open(const char*,int =ios::in,

int=filebuf::openprot);

void ofstream::open(const char *,int=ios::out,

int=filebuf::opernprot);

void fstream::open(const char*,int,

int=filebuf::openprot); 

第乙個引數為要開啟的磁碟檔名。第二個引數為開啟方式,有輸入(in),輸出(out)等,開啟方式在ios基類中定義為列舉型別。第三個引數為指定開啟檔案的保護方式,一般取預設。所以第二步可如下進行:

iofile.open(「myfile.txt」,ios::in|ios::out);

三個檔案流類都過載了乙個帶預設引數的建構函式,功能與open函式一樣:

ifstream::ifstream(const char*,int=ios::in,int=filebuf::openprot);

ofstream::ofstream(const char*,int=ios::out, 

int=filebuf::openprot);

fstream::fstream(const char*,int,

int=filebuf::operprot);

所以1,2兩步可合成:

fstream iofile(「myfile.txt」,ios::in|ios::out);

開啟檔案也應該判斷是否成功,若成功,檔案流物件值為非零值,不成功為0(null),檔案流物件值物理上就是指它的位址。

因此開啟乙個檔案完整的程式為:

fstream iofile(」myfile.txt」,ios::in|ios::out);

if(!iofile); //給定寫入檔案的內容

ofstream ofile; //檔案輸出流

ofile.open("text1.txt",ios::out); //開啟檔案

while(!ofile) //開啟錯誤

ifile.close(); //關閉檔案

}

3.複製檔案

#include #include using namespace std;

void main()

cout<<"輸入目標檔案路徑名:"<>filename; //只能建立檔案,不能建立子目錄,如路徑不存在則失敗

dfile.open(filename,ios::out);

if(!dfile)

{ cout<<"目標檔案建立失敗"<

C C 檔案讀寫

c語言 include include int main void 寫入 fwrite msg,1,strlen msg 1,stream 重定位流 資料流 檔案 上的檔案內部位置指標 fseek stream,0,seek set 讀出 fread buf,1,strlen msg 1,strea...

c c 檔案讀寫操作

不要覺得我們說的檔案就是指txt,或者doc才是檔案,其實計算機裡面的年東西都是檔案。當我們用專門的軟體開啟他們的時候,可以看到裡面的東西,有記憶體也有二進位制 什麼的。開啟乙個檔案的格式 file p fopen home zouux 666 wb 第乙個引數是檔案的絕對路徑這裡的路徑為linux...

C C 讀寫txt檔案

讀寫txt檔案 include std string filename username txt 檔名 std ofstream writefile filename writefile password n 寫入password內容 std ifstream readfile filename s...