檔案操作基本步驟:首先使用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 如...