C檔案操作高階

2022-05-03 21:39:16 字數 1933 閱讀 9588

檔案操作基本步驟:首先使用fopen獲得指向檔案的指標,

1.fopen

作用:開啟乙個檔案,返回指向該檔案的指標

函式原型:file * fopen(const char *path,cost char *mode)

引數說明:第乙個引數為欲開啟檔案的檔案路徑及檔名,第二個引數表示對檔案的開啟方式

返回值:檔案開啟了,返回乙個指向該開啟檔案的指標(file結構);檔案開啟失敗,錯誤上存error code(錯誤**)

注:mode有以下值:

r:唯讀方式開啟,檔案必須存在

r+:可讀寫,必須存在

rb+:開啟二進位制檔案,可以讀寫

rt+:開啟文字檔案,可讀寫

w:只寫,檔案存在則檔案長度清0,檔案不存在則建立該檔案

w+:可讀寫,檔案存在則首先將檔案清空再寫入,檔案不存在則建立該檔案

a:附加方式開啟只寫,不存在建立該檔案,存在寫入的資料加到檔案尾,eof符保留

a+:附加方式開啟可讀寫,不存在建立該檔案,存在寫入的資料加到檔案尾,eof符不保留

wb:開啟二進位制檔案,只寫

wb+:開啟或建立二進位制檔案,可讀寫

wt+:開啟或建立文字檔案,可讀寫

at+:開啟文字檔案,可讀寫,寫的資料加在文字末尾

ab+:開啟二進位制檔案,可讀寫,寫的資料加在檔案末尾

由mode字元可知,上述如r、w、a在其後都可以加乙個b,表示以二進位制形式開啟檔案

注意:在fopen操作後要進行判斷,是否檔案開啟,檔案真正開啟了才能進行後面的讀或寫操作,如有錯誤要進行錯誤處理

例:file *fp=fopen("testfile","w+")

2.fwrite

作用:向檔案寫入乙個資料塊

函式原型:size_t fwrite(const void* buffer, size_t size, size_t count, file* stream);

返回值:實際寫入的資料塊的個數。

說明:寫入到檔案的**? 這個與檔案的開啟模式有關,如果是w+,則是從file pointer指向的位址開始寫,替換掉之後的內容,檔案的長度可以不變,stream的位置移動count個數;如果是a+,則從檔案的末尾開始新增,檔案長度加大。

fseek對此函式有作用,但是fwrite[1]函式寫到使用者空間緩衝區,並未同步到檔案中,所以修改後要將記憶體與檔案同步可以用fflush(file *fp)函式同步。

3.fseek

作用:重定位檔案內部指標

函式原型:int fseek(file *stream,long offset,int framewhere)

引數說明:第乙個為檔案指標,第二個是指標的偏移量,第三個是指標偏移起始位置

返回值:成功則返回0,否則返回其他值

偏移量的三種取值: seek_set  檔案頭

seek_cur  當前指標位置

seek_end  檔案尾

4.fread

作用:讀取檔案資料塊(注意:檔案讀取後檔案內指標會隨之移動)

memset

函式原型:void *memset(void *s,int c,size_t n)

作用:將已開闢記憶體空間 s 的首 n 個位元組的值設為值 c。

sizeof

作用:返回型別所佔的位元組數

學習C 高階程式設計之檔案操作

對檔案和資料夾進行操作 using system using system.collections.generic using system.io using system.linq using system.text using system.threading.tasks namespace 0...

C 高階篇 File 檔案操作相關

1.檢視檔案資料夾的資訊 通過fileinfo類獲取檔案相關資訊 static void main string args 通過copyto將檔案複製到當前目錄下 將檔案複製到當前目錄下 fileinfo.copyto t.txt 建立檔案 fileinfo fileinfo new fileinf...

python shutil 高階檔案操作

shutil模組提供了大量的檔案的高階操作。特別針對檔案拷貝和刪除,主要功能為目錄和檔案操作以及壓縮操作。對單個檔案的操作也可參見os模組。shutil.copyfile src,dst 複製檔案內容 不包含元資料 從src到dst。dst必須是完整的目標檔名 拷貝目錄參見shutil.copy 如...