C語言中的檔案操作

2021-07-09 02:41:07 字數 3663 閱讀 3341

本次詳細介紹c下檔案的各種api.

1)開啟檔案

file *fopen( const

char * filename,const

char * mode);

返回檔案控制代碼,非null為正確開啟。

2)關閉檔案

int

fclose( file * stream);

例子:

file * psrc = fopen("data5610.txt", "r");

if (psrc == null)

1)fscanf從檔案中按照固定格式讀取

fscanf適用於讀取以文字格式開啟的檔案。並且,文字的讀取必須按照固定的格式(format)讀取。類似於scanf,只不過資料是從檔案中讀取,而非標準的顯示屏中。

int fscanf(    file * stream, 

const char * format[, argument]...

);

2)fprintf按照固定格式寫入檔案中

類似於printf,只不過資料是儲存在檔案中,而非標準的顯示屏中。

int fprintf(    file* stream,const char * format [, argument ]...);
例子:

while ( fscanf(psrc, "%d

%s", &i, str)!=eof )

1)fgetc適合於從檔案中一次讀取乙個位元組

int fgetc(    file * stream);
fgetc適合於一次從檔案中讀取乙個位元組,並且每個位元組被當作乙個無符號的8位(二進位制)數,取值範圍為0-255,類似於getchar()

int getchar(    void );
2)fputc適用於向檔案中依次讀入乙個位元組

int fputc(    int c,file * stream);
類似於putchar()

int

putchar( int c);

例子:

while ( (c= fgetc(psrc)) != eof )

fputc(c, pdest);

1)fgets一次從檔案中讀取一行,包括換行符,並在字串的最後新增'\0'

char *fgets(    char * string,int n,file * stream);
其中,n表示的為string中最大儲存的字元數,通常,為了預留一位儲存'\0',長度通常取(sizeof(string)-1)

2)fputs一次向檔案中寫入一行資料

int

fputs( const

char * string,file * stream);

例子:

while ( fgets(str, sizeof(str)-1, psrc) )

fputs(str, pdest);

getsputs函式的區別

gets函式從標準流stdio中讀取資料,不判斷上界,直到讀取到'\n'或者eof才停止。換行符 不作為讀取的字串的內容,而是被轉化為'\0'儲存在指定的記憶體空間中。

puts函式是乙個將制定字串輸入到標準輸出流stdout中,輸出的停止標誌位讀取到字串中的'\0',但是,puts會在輸出字串之後自動輸出乙個換行符。也就是說puts(char * s)printf("%s\n", s)的作用是相同的。

1)fread從檔案中讀

size_t fread(    void * buffer,size_t size,size_t count,file * stream);
fread從檔案中讀取count*size位元組的資料,或者說讀取countsize位元組大小的資料,並儲存到buffer指向的記憶體中。

返回值為成功讀取的size大小的資料塊的個數。

2)fwrite向檔案中寫

size_t fwrite(    const

void*buffer,size_t size,size_t count,file*stream);

fwritebuffer指向的記憶體中的countsize大小的資料寫入到檔案中。返回值表示成功寫入的資料個數count。

例子:

while ( fread(&buffer, sizeof(struct stru), 10, psrc) )

fwrite(&buffer, sizeof(struct stru), 10, pdest);

int fseek(file * stream,long offset,int origin );
該函式將指向檔案stream的檔案指標設定到距離originoffset偏移位元組處的地方。

origin的取值:

seek_set:檔案開始處;

seek_cur:執行本函式之前,檔案指標所在位置;

seek_end:檔案結尾處

另外,fseek函式通常與freadfwrite一同完成從某個特定位置讀寫資料。

例子:

fseek(psrc, 1, seek_set); //從檔案開始處偏移乙個位元組

fread(&buffer, sizeof(char), 6, psrc); //從偏移處讀取6*sizeof(char)個資料

fwrite(&buffer, sizeof(char), 6, pdest); //從偏移處讀取6*sizeof(char)個資料存入檔案pdest中

C語言中的檔案操作

include file fopen const char path,const char mode path表示檔案路徑,mode表示檔案使用方式 int fclose file pf 成功關閉返回0,否則返回eof,並且將錯誤記錄在系統全域性變數errno中 從stream當前位置讀取乙個字元 ...

C語言中的檔案操作

一 檔案 檔案 file 一般指儲存在外部介質上資料的集合,從不同的角度可對檔案作不同的分類。根據儲存規則可以將其分為 mp4 txt bmp jpg exe rmvb等檔案。從使用者的角度看,檔案可分為普通檔案和裝置檔案兩種 普通檔案是指駐留在磁碟或其它外部介質上的乙個有序資料集 裝置檔案是指與主...

C語言中的檔案操作

c語言中的檔案操作函式,將資料寫入檔案。具體如下 一 開啟檔案。使用fopen函式。格式為 file fopen const char name,const char mode 其中name為要寫入的檔名,mode為格式字元。要寫入檔案,mode可以是 1 w 只寫方式,文字形式輸入 2 wb 只寫...