欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

C語言 文件的打開與關(guān)閉詳解及示例代碼

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

在C語言中,文件操作都是由庫函數(shù)來完成的,這節(jié)介紹文件的打開和關(guān)閉。

文件的打開(fopen函數(shù))

fopen() 函數(shù)用來打開一個文件,它的原型為:

FILE *fopen(char *filename, char *mode);

filename為文件名(包括文件路徑),mode為打開方式,它們都是字符串。fopen() 會獲取文件信息,包括文件名、文件狀態(tài)、當(dāng)前讀寫位置等,并將這些信息保存到一個FILE類型的結(jié)構(gòu)體變量中,然后將該變量的地址返回。

FILE是在stdio.h頭文件中定義的一個結(jié)構(gòu)體,用來保存文件信息。

如果希望接收 fopen() 的返回值,就需要定義一個 FILE 類型的指針。例如:

FILE *fp = ("demo.txt", "r");

表示以“只讀”方式打開當(dāng)前目錄下的 demo.txt 文件,并使 fp 指向該文件,這樣就可以通過 fp 來操作 demo.txt 了。fp 通常被

稱為文件指針。又如:

FILE *fp = fopen("D:\\demo.txt","rb");

表示以二進制方式打開 D 盤下的 demo.txt 文件,允許讀和寫。

打開方式(mode)有多種,見下表:

打開方式 說明
r 以只讀方式打開文件,只允許讀取,不允許寫入。該文件必須存在。
r+ 以讀/寫方式打開文件,允許讀取和寫入。該文件必須存在。
rb+ 以讀/寫方式打開一個二進制文件,允許讀/寫數(shù)據(jù)。
rt+ 以讀/寫方式打開一個文本文件,允許讀和寫。
w 以只寫方式打開文件,若文件存在則長度清為0,即該文件內(nèi)容消失,若不存在則創(chuàng)建該文件。
w+ 以讀/寫方式打開文件,若文件存在則文件長度清為零,即該文件內(nèi)容會消失。若文件不存在則建立該文件。
a 以追加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數(shù)據(jù)會被加到文件尾,即文件原先的內(nèi)容會被保留(EOF符保留)。
a+ 以追加方式打開可讀/寫的文件。若文件不存在,則會建立該文件,如果文件存在,則寫入的數(shù)據(jù)會被加到文件尾后,即文件原先的內(nèi)容會被保留(原來的EOF符 不保留)。
wb 以只寫方式打開或新建一個二進制文件,只允許寫數(shù)據(jù)。
wb+ 以讀/寫方式打開或建立一個二進制文件,允許讀和寫。
wt+ 以讀/寫方式打開或建立一個文本文件,允許讀寫。
at+ 以讀/寫方式打開一個文本文件,允許讀或在文本末追加數(shù)據(jù)。
ab+ 以讀/寫方式打開一個二進制文件,允許讀或在文件末追加數(shù)據(jù)。

文本文件和二進制文件的區(qū)別請查看:C語言fopen()打開文本文件與二進制文件的區(qū)別

幾點說明

1) 文件打開方式由r、w、a、t、b、+ 六個字符拼成,各字符的含義是:

  1. r(read):讀
  2. w(write):寫
  3. a(append):追加
  4. t(text):文本文件,可省略不寫
  5. b(banary):二進制文件
  6. +:讀和寫

2) 如果沒有“b”字符,文件以文本方式打開。

3) 凡用“r”打開一個文件時,該文件必須已經(jīng)存在。

4) 在打開一個文件時,如果出錯,fopen將返回一個空指針值NULL。在程序中可以用這一信息來判別是否完成打開文件的工作,并作相應(yīng)的處理。因此常用以下程序段打開文件:

if( (fp=fopen("D:\\demo.txt","rb") == NULL ){
  printf("Error on open D:\\demo.txt file!");
  getch();
  exit(1);
}

這段程序的意義是,如果返回的指針為空,表示不能打開D盤根目錄下的 demo.txt 文件,并給出提示信息“error on open D:\\demo.txt file!”。第3行g(shù)etch()的功能是從鍵盤輸入一個字符,但不在屏幕上顯示。在這里,該行的作用是等待,只有當(dāng)用戶從鍵盤敲任一鍵時,程序才繼續(xù)執(zhí)行,因此用戶可利用這個等待時間閱讀出錯提示。敲鍵后執(zhí)行exit(1)退出程序。

5) 把一個文本文件讀入內(nèi)存時,要將ASCII碼轉(zhuǎn)換成二進制碼,而把文件以文本方式寫入磁盤時,也要把二進制碼轉(zhuǎn)換成ASCII碼,因此文本文件的讀寫要花費較多的轉(zhuǎn)換時間。對二進制文件的讀寫不存在這種轉(zhuǎn)換。

6) 標(biāo)準(zhǔn)輸入文件 stdin(鍵盤)、標(biāo)準(zhǔn)輸出文件 stdout(顯示器)、標(biāo)準(zhǔn)錯誤文件 stderr(顯示器)是由系統(tǒng)打開的,可直接使用。

文件關(guān)閉(fclose函數(shù))

文件一旦使用完畢,應(yīng)該用fclose()函數(shù)把文件關(guān)閉,以釋放相關(guān)資源,避免數(shù)據(jù)丟失。fclose() 的原型為:

int fclose(FILE *fp);

fp 為文件指針。例如:

fclose(fp);

文件正常關(guān)閉時,fclose() 的返回值為0,如果返回非零值則表示有錯誤發(fā)生。

以上就是對文件的基礎(chǔ)資料進行的詳解,后續(xù)繼續(xù)補充相關(guān)資料,謝謝大家對本站的支持!

上一篇:C++實現(xiàn)順序表的常用操作(插入刪出查找輸出)

欄    目:C語言

下一篇:C語言 用指針作為函數(shù)返回值詳解

本文標(biāo)題:C語言 文件的打開與關(guān)閉詳解及示例代碼

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/2099.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有