C語言檔案讀寫筆記

來源:互聯網
上載者:User

1.檔案開啟函數:fopen

調用形式:檔案指標名=fopen(檔案名稱(路徑),使用檔案方式)

eg:FILE *fp;

fp=fopen("file1.bat","rb");

檔案使用方式

“rt” 唯讀開啟一個文字檔,只允許讀資料

“wt”只開啟或建立一個文字檔,只允許寫資料

“at“追加開啟一個文字檔,只允許在檔案末寫資料

”rb“唯讀方式開啟一個二進位檔案,只允許讀資料

”wb“唯寫開啟或建立一個二進位檔案,只允許寫資料

”ab“追加開啟一個二進位檔案,並在檔案末尾寫資料

”rt+“讀寫開啟一個文字檔,允許讀和寫

”wt+“讀寫開啟或建立一個文字檔,允許讀寫

”at+“讀寫方式開啟一個文字檔,允許讀,或在檔案末尾追加資料

”rb+“讀寫開啟一個二進位檔案,允許讀寫

”wb+“讀寫或建立一個二進位檔案,允許讀寫

”ab+“讀寫開啟一個二進位檔案,允許讀,或在檔案末尾追加資料

用”a“方式開啟檔案。但此時該檔案必須是存在的,否則會出錯。

2.fclose函數

調用的一般形式:fclose(檔案指標)

eg:fclose(fp):正常完成關閉檔案操作時,fclose函數傳回值為0,否則有錯誤發生

3.一些讀寫函數:

字元讀寫函數:fgetc和fputc

字串讀寫函數:fgets和fputs

資料區塊讀寫函數:fread和fwrite

格式化讀寫函數:fscanf和fprinf

eg:fgetc函數調用形式:

ch=fgetc(fp);從開啟的檔案fp中讀取一個字元傳送到ch中

fputc函數調用形式:

ch=fputc('d',fp);把字元d寫入fp指向的檔案中

rewind函數:用於把fp所指向檔案的內部位置指標移動到檔案頭:rewind(檔案指標)

fp=stdout:輸出給標準輸出檔案stdout,及在顯示器上顯示檔案的內容;

用法:fp=stdout;

fputc(ch,fp);

fgets:從指定檔案讀一個字串到字元數組中

用法:fgets(字元數組名,n,檔案指標)n表示讀取的字串不超過n-1個字元,讀入的最後一個字元末尾加‘\0’標誌

注意:在讀取到n-1個字元前,如果遇到分行符號或EOF,則讀取結束;fgets函數的傳回值是其字元數組的首地址

fputs:向指定檔案寫入一個字串

用法:fputs(字串,檔案指標):fput(”abcd“,fp)

fread\fwrite:資料區塊的讀\寫:

用法:fread(buffer,size,count,fp)

fwrite(buffer,size,cout,fp);其中buffer是一個指標,在fread函數中它表示輸入資料的首地址。在fwrite中表示

存放輸出資料的首地址;size表示資料的位元組數;count表示讀寫的資料區塊;fp檔案指標

fread(buf,4,5,fp);從檔案fp中讀取4個位元組(int)送人到buf中,連續讀5次(及讀5個int)

fscanf\fprintf函數與前面使用的scanf和printf
函數的功能相似,都是格式化讀寫函數。

兩者的區別在於 fscanf 函數和fprintf函數的讀寫對象不是鍵盤和顯示器,而是磁碟檔案。

這兩個函數的調用格式為:

fscanf(檔案指標,格式字串,輸入表列);

fprintf(檔案指標,格式字串,輸出表列);

eg:
fscanf(fp,"%d%s",&i,s);
fprintf(fp,"%d%c",j,ch);

4.檔案的隨機讀取

rwind;

fseek函數:還要說明的是fseek函數一般用於二進位檔案。在文字檔中由於要進行轉換,故往往計算的位置會出現錯誤。

fseek函數用來移動檔案內部位置指標,其調用形式為: fseek(檔案指標,位移量,起始點);其中:“檔案指標”指向被移動的檔案。

“位移量”表示移動的位元組數,要求位移量是long型資料,以便在檔案長度大於64KB時不會出錯。當用常量表示位移量時,要求加尾碼“L”。

“起始點”表示從何處開始計算位移量,規定的起始點有三種:檔案首,當前位置和檔案尾。
其表示方法如下
起始點   表示符號   數字表示
──────────────────────────
檔案首SEEK—SET0
當前位置SEEK—CUR1
檔案末尾SEEK—END
   2
例如:
fseek(fp,100L,0);其意義是把位置指標移到離檔案首100個位元組處。還要說明的是fseek函數一般用於二進位檔案。在文字檔中由於要進行轉換,

故往往計算的位置會出現錯誤。檔案的隨機讀寫在移動位置指標之後,即可用前面介紹的任一種讀寫函數進行讀寫。

由於一般是讀寫一個資料據塊,因此常用fread和fwrite函數

5.檔案檢查

feof:檔案結束檢測:feof(檔案指標):判斷是否處於檔案結束為止(返回1或0)

ferror:讀寫出錯檢測,檢測檔案讀寫是否出錯(返回1或0)

clearerr:檔案出錯標誌和檔案結束標誌0函數;清除出錯標誌和檔案結束標誌,使它們為0值

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.