1. 程式人生 > >C程式設計--檔案1--檔案的分類+檔案的開啟和關閉

C程式設計--檔案1--檔案的分類+檔案的開啟和關閉

1.檔案分類

  • 概念
    1) ASCII檔案,又稱文字檔案,每一個位元組放一個字元的ASCII程式碼;
    2)二進位制檔案,又稱映像檔案,按二進位制形式儲存。使用者一般不能直接讀懂它們,只有通過相應的軟體才能將其顯示出來。二進位制檔案一般是可執行程式、圖形、影象、聲音等等。
  • 兩者的優缺點:
    1.ASCII檔案:
    優點:位元組與字元一一對應,便於對字元進行逐個處理;
    缺點:一般佔儲存空間較多,而且要花轉換時間(二進位制形式與ASCII碼間的轉換)。
    二進位制檔案編碼是變長的,所以它靈活,儲存利用率要高些,譯碼難一些(不同的二進位制檔案格式,有不同的譯碼方式)。
    2.二進位制檔案:

    優點:可以節省外存空間和轉換時間,把記憶體中的儲存單元中的內容原封不動的輸出到磁碟(或者其他外部介質)上。
    缺點:位元組不一定代表一個字元,所以譯碼難一些(不同的二進位制檔案格式,有不同的譯碼方式)

檔案的開啟和關閉

  • 開啟檔案
  1. 您可以使用 fopen( ) 函式來建立一個新的檔案或者開啟一個已有的檔案,這個呼叫會初始化型別 FILE 的一個物件,型別 FILE 包含了所有用來控制流的必要的資訊。下面是這個函式呼叫的原型:
    FILE *fopen( const char * filename, const char * mode );
    即:FILE *fopen( 檔名, 訪問方式 );
  2. 返回值:返回一個指向檔名的指標,即檔案資訊區的起始地址,通常將fopen函式的返回值賦給一個指向檔案的指標變數。如:
    FILE *fp; //定義一個指向檔案的指標變數fp
    fp=fopen(“D:\\file\\test.txt”,“r”); //將fopen函式的返回值賦給指標變數fp

    如果開啟失敗,fopen函式會帶回一個空指標NULL。出錯的原因可能:
    ①用 “r” 或 “a” 方式開啟一個並不存在的檔案;
    ②磁碟故障
    ③磁碟已滿,無法建立新檔案
    等等
    所以常用如下方法開啟檔案:
    if((fp=fopen(“file”,“r”))==null){
    printf(“cannot open this file\n”);
    exit(0);//需要標頭檔案 #include<stdlib.h>
    }
  3. 在這裡,filename 是字串,用來命名檔案,ASCII檔案訪問模式 mode 的值可以是下列值中的一個:
    在這裡插入圖片描述
    如果處理的是二進位制檔案,則需使用下面的訪問模式來取代上面的訪問模式:
    “rb”(只讀), “wb”(只寫), “ab”(追加),
    “rb+”(讀寫), “r+b”(讀寫), “wb+”(讀寫), “w+b”(讀寫), “ab+”(讀寫), “a+b”(讀寫)
  • 關閉檔案
  1. 為了關閉檔案,請使用 fclose( ) 函式。函式的原型如下:
    int fclose( FILE *fp );
    即:int fclose( 檔案指標);
  2. 返回值:
    如果成功執行關閉操作,則返回 0;
    否則返回 EOF(-1);

推薦參考:

  1. https://www.cnblogs.com/saolv/p/7793379.html (強烈推薦)
  2. http://www.runoob.com/cprogramming/c-file-io.html
  3. https://www.cnblogs.com/pengwangguoyh/articles/3223072.html