jasmine214--love

          只有當你的內心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          C--fopen() 和 fclose()函數

          Posted on 2011-03-09 10:43 幻海藍夢 閱讀(863) 評論(0)  編輯  收藏 所屬分類: C語言學習

          fopen()和fclose()的用法

          1.fopen()函數的用法

          fopen函數用于打開文件, 其調用格式為:

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

          fopen()函數中第一個形式參數表示文件名, 可以包含路徑和文件名兩部分。如:

          "B:TEST.DAT"

          "C:\\TC\\TEST.DAT"

          注意:如果將路徑寫成"C:\TC\TEST.DAT"是不正確的, 這一點要特別注意。

          fopen函數用來打開一個文件,其調用的一般形式為: 文件指針名=fopen(文件名,使用文件方式)

           其中,“文件指針名”必須是被說明為FILE 類型的指針變量,“文件名”是被打開文件的文件名。 

          “使用文件方式”是指文件的類型和操作要求。“文件名”是字符串常量或字符串數組。例如: 

          FILE *fp;

          fp=("file a","r");

          其意義是在當前目錄下打開文件file a, 只允許進行“讀”操作,并使fp指向該文件。

          又如:

          FILE *fphzk

          fphzk=("c:\\hzk16',"rb")

          其意義是打開C驅動器磁盤的根目錄下的文件hzk16, 這是一個二進制文件,只允許按二進制方式進行讀操作。

          兩個反斜線“\\ ”中的第一個表示轉義字符,第二個表示根目錄。使用文件的方式共有12種,下面給出了它們的符號和意義。

          第二個形式參數表示打開文件的類型。關于文件類型的規定參見下表。 

















                                 表 文件操作類型

              ━━━━━━━━━━━━━━━━━━━━━━━━━━━━

                    字符                含義

              ────────────────────────────

                     "r"           打開文字文件只讀

                     "w"           創建文字文件只寫

                     "a"           增補, 如果文件不存在則創建一個

                     "r+"          打開一個文字文件讀/寫

                     "w+"          創建一個文字文件讀/寫

                     "a+"          打開或創建一個文件增補

                     "b"           二進制文件(可以和上面每一項合用)

                     "t"           文這文件(默認項)

              ━━━━━━━━━━━━━━━━━━━━━━━━━━━━

           文件使用方式        意 義

          “rt”      只讀打開一個文本文件,只允許讀數據 

          “wt”      只寫打開或建立一個文本文件,只允許寫數據

          “at”      追加打開一個文本文件,并在文件末尾寫數據

          “rb”      只讀打開一個二進制文件,只允許讀數據

          “wb”       只寫打開或建立一個二進制文件,只允許寫數據

          “ab”       追加打開一個二進制文件,并在文件末尾寫數據

          “rt+”      讀寫打開一個文本文件,允許讀和寫

          “wt+”      讀寫打開或建立一個文本文件,允許讀寫

          “at+”      讀寫打開一個文本文件,允許讀,或在文件末追加數 據

          “rb+”      讀寫打開一個二進制文件,允許讀和寫 

          “wb+”      讀寫打開或建立一個二進制文件,允許讀和寫

          “ab+”      讀寫打開一個二進制文件,允許讀,或在文件末追加數據



          對于文件使用方式有以下幾點說明:

          1. 文件使用方式由r,w,a,t,b,+六個字符拼成,各字符的含義是:

          r(read): 讀

          w(write): 寫

          a(append): 追加

          t(text): 文本文件,可省略不寫

          b(banary): 二進制文件

          +: 讀和寫



          2. 凡用“r”打開一個文件時,該文件必須已經存在, 且只能從該文件讀出。



          3. 用“w”打開的文件只能向該文件寫入。 若打開的文件不存在,則以指定的文件名建立該文件,若打開的文件已經存在,則將該文件刪去,重建一個新文件。



          4. 若要向一個已存在的文件追加新的信息,只能用“a ”方式打開文件。

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

          if((fp=fopen("c:\\hzk16","rb")==NULL)

          {

          printf("\nerror on open c:\\hzk16 file!");

          getch();

          exit(1);

          }

          這段程序的意義是,如果返回的指針為空,表示不能打開C盤根目錄下的hzk16文件,則給出提示信息“error on open c:\ hzk16file!”,下一行getch()的功能是從鍵盤輸入一個字符,但不在屏幕上顯示。在這里,該行的作用是等待, 只有當用戶從鍵盤敲任一鍵時,程序才繼續執行, 因此用戶可利用這個等待時間閱讀出錯提示。敲鍵后執行exit(1)退出程序。



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



          7. 標準輸入文件(鍵盤),標準輸出文件(顯示器 ),標準出錯輸出(出錯信息)是由系統打開的,可直接使用。文件關閉函數fclose文件一旦使用完畢,應用關閉文件函數把文件關閉, 以避免文件的數據丟失等錯誤。



















          如果要打開一個CCDOS子目錄中, 文件名為CLIB的二進制文件, 可寫成:

          fopen("c:\\ccdos\\clib", "rb");

          如果成功的打開一個文件, fopen()函數返回文件指針,   否則返回空指針(NULL)。由此可判斷文件打開是否成功。

          2. fclose()函數

             fclose()函數用來關閉一個由fopen()函數打開的文件 , 其調用格式為:

             nt fclose(FILE *stream);

             該函數返回一個整型數。當文件關閉成功時, 返回0, 否則返回一個非零值??梢愿鶕瘮档姆祷刂蹬袛辔募欠耜P閉成功。

          例子:

          FILE *fpOut=fopen(“c:\\a.txt”,”wt+”);

          Int a=1;

          Fprintf(fpOut,”%d”,a);

          Fclose(fpOut);

          原文:http://www.cnblogs.com/wangliang651/archive/2006/06/16/427497.html

          主站蜘蛛池模板: 广昌县| 开原市| 河源市| 高碑店市| 宝应县| 志丹县| 始兴县| 平和县| 贺州市| 宁蒗| 彭州市| 丽江市| 铁岭县| 江西省| 仙桃市| 垫江县| 靖远县| 抚宁县| 阳泉市| 屯门区| 棋牌| 河西区| 巴里| 宽甸| 图木舒克市| 含山县| 临猗县| 青海省| 胶南市| 临漳县| 桂林市| 营口市| 黑水县| 灌云县| 旬阳县| 青田县| 中江县| 峨山| 浙江省| 海口市| 宜兰县|