C 檔案操作常用函式

2021-07-22 21:42:57 字數 3305 閱讀 5433

c++檔案操作常用函式

fopen

fclose

ftell

fread

fseek

fopen

功能:開啟檔案

定義函式 : file * fopen(const char * path,const char * mode);

輸入引數: path字串包含欲開啟的檔案路徑及檔名

mode字串則代表著流模式。常見模式為r(唯讀),r+(可讀寫),w(只寫),w+(可讀寫)

注:1. mode字串都可以再加乙個b字元,如rb、w+b或ab+等組合,加入b字元代表開啟的檔案為       二進位制檔案。 2.使用此函式必須保證欲開啟檔案存在,否則輸出返回錯誤。

返回引數:  檔案順利開啟後,返回指向該流的檔案指標。

檔案開啟失敗返回null,並把錯誤**存在errno中。

範例

#includemain()

.fprintf

功能:傳送格式化輸出到乙個檔案中

函式原型:int fprintf(file *stream,char *format[, argument,...]);

輸入引數:file* 乙個file型的指標

char*格式化輸入函式,和printf裡的格式一樣

返回引數:成功時返回轉換的位元組數,失敗時返回乙個負數

舉例:fp =fopen("/local/test.c","a+");

fprintf(fp,"%s\n",str);

fscanf

功能:從乙個流中執行格式化輸入

函式原型:intfscanf(file *stream, char *format[,argument...]);

輸入引數:file* 乙個file型的指標

char* 格式化輸出函式,和scanf裡的格式一樣

返回引數:成功則返回轉換的位元組數,

失敗則返回乙個負數

範例:fp =fopen("/local/test.c","a+");

fscanf(fp,"%s",str);

fclose

功能:關閉檔案

定義函式 int fclose(file *stream);

輸入引數:file * stream 開啟的檔案流

返回引數: 成功則返回0,

失敗返回eof並把錯誤**存到errno。

範例參考fopen()。

fseek

功能:

移動檔案流的讀寫位置

定義函式int fseek(file * stream,long offset,int whence);

輸入引數   stream為已開啟的檔案指標

offset為根據引數whence來移動讀寫位置的位移數。

whence為下列其中一種:

seek_set從距檔案開頭offset位移量為新的讀寫位置。

seek_cur 以目前的讀寫位置往後增加offset個位移量。

seek_end將讀寫位置指向檔案尾後再增加offset個位移量。

當whence值為seek_cur或seek_end時,引數offset允許負值的出現。

下列是較特別的使用方式:

1)

欲將讀寫位置移動到檔案開頭時

:fseek(file*stream,0,seek_set);

2) 欲將讀寫位置移動到檔案尾時

:fseek(file *stream,0,0seek_end);

返回值   當呼叫成功時則返回0,若有錯誤則返回-1,errno會存放錯誤**。

附加說明 fseek()不像lseek()會返回讀寫位置,因此必須使用ftell()來取得目前讀寫的位置。

範例

#includemain()

執行 offset = 5

offset =0

offset=10

ftell

功能:取得檔案流的讀取位置

定義函式 long ftell(file *stream);

輸入引數 stream為已開啟的檔案指標。

返回值   成功時則返回目前的讀寫位置

錯誤則返回-1,errno會存放錯誤**。

錯誤** ebadf 引數stream無效或可移動讀寫位置的檔案流。

範例 參考fseek()。

fwrite

功能:將資料寫至檔案流

定義函式 size_t fwrite(const void* ptr,size_t size,size_t nmemb,file * stream);

輸入引數    stream為已開啟的檔案指標,

引數ptr 指向欲寫入的資料位址,總共寫入的字元數以引數size*nmemb來決定

返回值    實際寫入的nmemb數目。

範例

#include#define set_s (x,y) 

#define nmemb 3

struct test

s[nmemb];

main()

執行 參考fread()。

fread

函式原型:size_tfread(void* buff,size_t size,size_t count,file*)

第二個引數size為單個元素的大小,即由指標寫入位址的資料大小,注意單位是位元組

第三個引數count為元素個數,即要讀取的資料大小為size的元素個素

第四個引數stream 為提供資料的檔案指標,該指標指向檔案內部資料

返回值:讀取的總資料元素個數

範例:int num,count;

int*pr=new int[num*count];

fread(pr,num*4, count, stream);   // stream為fopen中返回的file指標

要將資料寫入pr中,必須為pr分配記憶體,乙個int為4個位元組,所以要x4

C檔案操作常用函式

函式名 fseek 功 能 重定位流上的檔案指標 用 法 int fseek file stream,long offset,int fromwhere 程式例 include long filesize file stream int main void long filesize file st...

C語言檔案操作常用函式

1.fopen函式用來開啟乙個檔案 對磁碟檔案的操作必須 先開啟,後讀寫,再關閉 開啟 檔案的含義 以某種方式從磁碟上查詢指定的檔案或建立乙個新檔案。標頭檔案 include 函式原型 file fopen const char path,const char mode 函式形參 path 包含欲開...

C 常用的檔案操作路徑函式

shlwapi.dll中的實用api函式發布 在windows system目錄下有這個動態鏈結庫 bool pathfileexists lpctstr lpszpath 功能 檢查檔案 路徑是否存在 lptstr pathfindfilename lpctstr ppath 功能 獲得路徑中的檔...