c語言 feof C語言讀寫檔案

2021-10-17 08:25:59 字數 2518 閱讀 4409

最近在看ffmpeg的有關知識,由於經常遇到檔案讀寫,但是對於c語言的檔案讀寫又有些忘記,於是便好好的記錄一下c語言的檔案讀寫,同時也讓自己能夠不再對c語言的檔案讀寫感到陌生(其實就是重新複習一下c語言相關的檔案讀寫的相關的api).

常用的檔案讀寫函式如下:

file * fopen(const char* restrict filename,const char* restrict mode);

int fclose(file* restrict stream);

int fflush(file* restrict stream);

file *freopen(const char* restrict filename,const char* restrict mode,file *restrict stream);

fopen()函式需要乙個檔案路徑,和檔案開啟模式,常用的開啟模式如下:

如果發生錯誤,會將錯誤碼設定在erron變數,並返回乙個null。

fclose()是關閉開啟的檔案指標,包括清空內部快取資料,在關閉錯誤時返回eof,否則返回0.

fflush()函式是重新整理檔案指標,清空與輸出或更新資料流引數相關的任何緩衝區。如果發生錯誤函式返回eof,否則返回0

freopen()是重新開啟資料流,就像先呼叫fclose關閉檔案,然後呼叫fopen開啟檔案,成功時返回輸入資料流與輸入的資料流相關,失敗返回null.

檔案定向:

int fseek(file *restrict stream,long int offset,int wherefrom);

long int ftell(file *restrict stream);

void rewind(file *restrict stream);

#define seek_set 0

#defube seek_cur 1

#define seek_end 2

fseek隨機訪問開啟的stream,第二個引數是開啟位置,wherefrom是定位方式,表示從檔案哪個點開始測量offset,如果定位成功返回0,負責返回下乙個非0值。然後清除任何檔案結尾指示符。其中wherefrom的值以及含義如下:

seek_set或0 距離檔案開頭offset個字元

seek_cur或1 距離檔案當前位置offset個字元

seek_end或2 距離檔案末尾offset個字元

ftell函式對於二進位制返回當前檔案位置之前的位元組數,如果失敗返回-1.對於文字檔案,返回的值是由實現定義的。

rewind函式則是將資料流復位到檔案開頭。呼叫rewind(stream)等價於:

fseek(stream,0,seek_set);

char *fgets(char *s,int n,file *stream);

char getc(file *stream);

int fscanf(file *restrict stream,const char* restrict format,…)

int fputc(int c,file *stream);

int putc(int c,file *stream);

int fputs(const char* s,file *stream);

int fprintf(file *restrict stream,const char* restrict format,…)

int snprintf(char* restrict s,size_t n,const char* restrict format,…);

讀寫二進位制的函式有:

size_t fread(void *restrict ptr,size_t element_size,size_t count,file *restrict stream);

size_t fwrite(const void* restrict ptr,size_t element_size,size_t count,file *restrict strean);

fread和fwrite分別是輸入和輸出到二進位制檔案。stream是輸入輸出流ptr是指向count元素陣列的指標,每個元素是element_size 字元長。fread返回實際讀取的專案數,如遇到末尾,則這個數小於count,遇到錯誤返回0,使用feof或ferror判斷是檔案末尾還是錯誤,如果element_size和count為0,不傳輸資料。

重新命名及檔案

int rename(const char *oldname,const char *newname);

int remove(const char* filename);

兩個函式操作成功均返回0,否則返回非0值

C語言檔案讀寫

include include define maxlen 1024 int main file outfile,infile outfile fopen 1.bmp wb infile fopen c 1.bmp rb unsigned char buf maxlen int rc while r...

C語言讀寫檔案

c語言庫函式包括檔案的開啟 關閉 讀 寫 定位等各種操作 要操作檔案,首先要宣告乙個檔案指標變數file fp 呼叫fopen開啟檔案 檔案指標名 fopen 檔名,使用檔案方式 ps 這裡檔案路徑必須是帶雙斜槓 其中,1.檔案使用方式 意 義 rt 唯讀開啟乙個文字檔案,只允許讀資料 wt 只寫開...

C語言檔案讀寫

讀取乙個完整的檔案 include include int main 如果檔案錯誤,退出1 獲得檔案大小 fseek pfile 0 seek end 指標移到檔案末位 lsize ftell pfile 獲得檔案長度 rewind pfile 函式rewind 把檔案指標移到由stream 流 指...