亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言 文件的打開與關閉詳解及示例代碼

2020-01-26 14:27:12
字體:
來源:轉載
供稿:網友

在C語言中,文件操作都是由庫函數來完成的,這節介紹文件的打開和關閉。

文件的打開(fopen函數)

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

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

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

FILE是在stdio.h頭文件中定義的一個結構體,用來保存文件信息。

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

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

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

稱為文件指針。又如:

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

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

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

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

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

幾點說明

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”打開一個文件時,該文件必須已經存在。

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

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行getch()的功能是從鍵盤輸入一個字符,但不在屏幕上顯示。在這里,該行的作用是等待,只有當用戶從鍵盤敲任一鍵時,程序才繼續執行,因此用戶可利用這個等待時間閱讀出錯提示。敲鍵后執行exit(1)退出程序。

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

6) 標準輸入文件 stdin(鍵盤)、標準輸出文件 stdout(顯示器)、標準錯誤文件 stderr(顯示器)是由系統打開的,可直接使用。

文件關閉(fclose函數)

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

int fclose(FILE *fp);

fp 為文件指針。例如:

fclose(fp);

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

以上就是對文件的基礎資料進行的詳解,后續繼續補充相關資料,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精选一区二区| 成人在线激情视频| 日韩精品免费在线| 成人中文字幕+乱码+中文字幕| 亚洲天堂免费观看| 欧美猛交免费看| 国产精品久久久久不卡| 亚洲电影免费观看高清完整版在线观看| www.欧美精品一二三区| 国产美女扒开尿口久久久| 国产精品海角社区在线观看| 精品爽片免费看久久| 国产精品视频自在线| 亚洲欧美综合另类中字| 77777亚洲午夜久久多人| 国产精品www网站| 精品久久久久国产| 欧美精品成人91久久久久久久| 国产日韩欧美一二三区| www.久久草.com| 中文字幕在线看视频国产欧美在线看完整| 国产精品大片wwwwww| 国产69精品久久久久9999| 69av视频在线播放| 夜夜嗨av一区二区三区四区| 成人久久18免费网站图片| 久久久亚洲国产| 欧美亚洲伦理www| 人人澡人人澡人人看欧美| 欧美午夜宅男影院在线观看| 欧美国产日产韩国视频| 日韩电影大片中文字幕| 亚洲色图综合久久| 欧美老肥婆性猛交视频| 欧美国产欧美亚洲国产日韩mv天天看完整| 日韩精品免费视频| 精品亚洲一区二区三区在线播放| 国产高清视频一区三区| 亚洲一区999| 欧美电影免费观看高清完整| 午夜免费日韩视频| 欧美国产日韩在线| 亚洲视频日韩精品| 日韩美女免费视频| 狠狠久久五月精品中文字幕| 日韩中文字幕在线观看| 茄子视频成人在线| 欧美国产日韩二区| 国产日韩欧美视频| 欧美美女15p| 美女撒尿一区二区三区| 日本精品免费一区二区三区| 992tv在线成人免费观看| 国产欧美一区二区三区久久人妖| 自拍偷拍亚洲在线| 久99九色视频在线观看| 日韩av在线免费看| 91精品91久久久久久| 精品国产成人av| 日韩中文在线中文网在线观看| 国产91网红主播在线观看| 日韩在线视频导航| 久久九九精品99国产精品| 久久天天躁狠狠躁夜夜av| 中文字幕日韩电影| 日韩经典中文字幕在线观看| 成人av色在线观看| 欧美电影《睫毛膏》| 国产精品永久免费| 欧美色视频日本高清在线观看| 一个人www欧美| 欧美亚洲成人免费| 亚洲精品日韩av| 国产91网红主播在线观看| 国产999精品视频| 色婷婷久久一区二区| 日韩欧美在线视频日韩欧美在线视频| 亚洲激情视频网| 国产精品美女久久久免费| 成人黄色影片在线| 久久精品久久久久久| 亚洲色图17p| 欧美一级淫片丝袜脚交| 久久天堂av综合合色| 久久精品这里热有精品| 欧美成人午夜免费视在线看片| 精品视频久久久久久久| 久久亚洲欧美日韩精品专区| 91在线观看免费高清完整版在线观看| 91po在线观看91精品国产性色| 中文字幕日本精品| 久久精品国产99国产精品澳门| 欧美日韩在线视频首页| 欧美电影免费在线观看| 日韩性生活视频| 国产日韩在线观看av| 欧美国产高跟鞋裸体秀xxxhd| 亚洲国产日韩欧美在线99| 亚洲视频电影图片偷拍一区| 日韩成人xxxx| 欧美激情videoshd| 久久男人的天堂| 米奇精品一区二区三区在线观看| 在线午夜精品自拍| 欧美老女人www| 91亚洲精华国产精华| 国产精品国内视频| 国产一区二区三区精品久久久| 国产精品久久久久久久午夜| 超碰日本道色综合久久综合| 国产精品综合久久久| 国产精品高精视频免费| 欧美电影免费观看| 曰本色欧美视频在线| 亚洲小视频在线观看| 伊人伊人伊人久久| 日韩经典中文字幕| 一本色道久久综合狠狠躁篇怎么玩| 国产成人精品a视频一区www| 国产亚洲精品激情久久| 日韩精品中文字幕视频在线| 91精品国产高清久久久久久久久| 久久久久久久久久久91| 91精品国产成人| 亚洲欧美国内爽妇网| 中文字幕成人在线| 国产精品自在线| 91精品国产自产在线老师啪| 成人激情免费在线| 亚洲一级一级97网| 国产精品男人爽免费视频1| 国产精品一二三在线| 欧美色xxxx| 欧美亚洲国产日韩2020| 国产一区二区视频在线观看| 亚洲第一黄色网| 国产精品久久久久久久久| 国产精品久久久久久av福利软件| 在线播放国产一区中文字幕剧情欧美| 国产精品免费小视频| 青草青草久热精品视频在线网站| 久久久99久久精品女同性| 亚洲色图国产精品| 日韩电影中文字幕| 午夜免费在线观看精品视频| 欧美日韩aaaa| 国产精品高清在线| x99av成人免费| 国产精品夜间视频香蕉| 欧美人交a欧美精品| 在线观看中文字幕亚洲| 午夜精品视频网站| 欧美亚洲国产日本| 亚洲成成品网站| 91在线观看免费高清| 亚洲国产高清自拍| 欧美性猛交xxxxx水多| 欧美在线激情视频| 午夜欧美大片免费观看| 美女撒尿一区二区三区| 亚洲欧美中文日韩在线v日本| 91在线高清视频| 亚洲国产精品资源| 国内精品久久久久久影视8|