C語言基礎(十)檔案的操作

2021-07-06 07:32:43 字數 1580 閱讀 4730

1、檔案流:像水流一樣把乙個大的檔案分成一段一段流過去就叫檔案流

2、操作檔案:

(1)fopen函式:fopen(路徑,操作方式);

fopen函式的返回值是乙個檔案指標,用file指標來接收

例:file *fp = fopen(「/users/ios001/destop/1.txt」,r);

操作方式:

r:以唯讀的方式開啟檔案,如果檔案存在,則返回檔案的指標;如果不存在返回null

w:以只寫的方式開啟檔案,覆蓋原始檔並返回檔案的指標,如果不存在則建立並返回指標

a:以追加的方式開啟檔案,如果存在則追加檔案的內容,不存在則建立,均返回檔案指標

r+:功能和r一樣,增加了寫的功能

w+:功能和w一樣,增加了讀的功能

a+:功能和a一樣,增加了讀的功能

t:代表操作的是文字檔案

b:代表操作的是二進位制檔案

(2)fclose函式:fclose(檔案指標);

3、fgetc和fputc的函式

fgetc函式:從檔案中讀取乙個字元,返回值為讀取到的函式

fgetc(檔案指標);

例:char ch = fgetc(fp);

檔案讀取到末尾會讀取到乙個特殊字元叫做eof,如果讀取到eof了,那代表結束了

fputc函式:寫入乙個字元到檔案中

fputc(要寫入的字元,檔案指標);

例:fputc(『a』,fp);

注意:這2個函式每執行一次,就會依次讀取或寫入乙個字元

4、fgets和fputs函式     

fgets函式:從檔案中讀取n個字元,然後存到陣列中

fgets(char陣列位址,n,檔案指標);

例:fgets(str,50,fp);

fputs函式:把字串寫入到檔案指標所指向的檔案處

fputs(字串,檔案指標);

例:fputs(「我愛北京天安門」,fp);

注意:fgets函式如果讀取到換行,那麼回停止讀取,然後把換行也讀取來,並且在換行後面加』\0'

feof(檔案指標);如果返回的是1,代表讀取到末尾;

5、fread和fwrite函式 

fread函式:分塊讀取,設定每塊大小,一共多少塊,去哪個檔案讀

fread(儲存資料的位址,每塊的位元組大小,讀取多少塊,檔案指標);

例:fread(str,sizeof(char),strlen(str),fp);

fread函式只關心具體讀的位元組數,不關心自己裡面有沒有換行

fwrite函式:分塊寫入,設定每塊大小,一共多少塊,寫入到什麼檔案

fwrite(寫入的大小,每塊的位元組大小,寫入多少塊,檔案指標) ;

例:fwrite(「abcdefg」,1,7,fp);

6、fscanf和fprintf函式

fscanf函式:從檔案讀取

fscanf(檔案指標,」格式化控制符」,引數列表);

例:scanf(fp,」%d」,num1);

fprintf函式:輸出到檔案 

fprintf(檔案指標,」格式化控制符」,位址列表);

例:fprintf(fp,」%d」,&num1);

C基礎(十)檔案

書目 c程式設計 第三版 c語言把檔案看作乙個字元 位元組 的序列。根據資料的組織形式,可分為ascii檔案 文字檔案 和二進位制檔案。ascii檔案的每乙個位元組放乙個ascii碼,代表乙個字元。二進位制檔案是把記憶體中的資料按其在記憶體中的儲存形式原樣輸出到磁碟上存放。因此,乙個c檔案是乙個位元...

C語言基礎 14 檔案操作

calderon函式也可以動態分配記憶體 這個函式可以把分配的所有記憶體內容都設定成0 這個函式也需要包含 stdlib.h標頭檔案 這個函式需要兩個引數,第乙個引數表示希望分配的儲存區個數,第二個引數表示單個儲存區的大小 這個函式的返回值是分配好的第乙個儲存區的位址 這個函式也可能失敗,如果失敗則...

c基礎 6 檔案操作

1.讀檔案 2.寫檔案 三.fputs,fgets 行讀取和寫入 四.fprintf,fscanf格式化讀寫檔案內容 二.fwrite,fread二進位制的讀寫 stat 函式 fseek,ftell,rewind remove rename fflush 檔案流 重新整理快取 int main2 ...