C語言檔案操作解析 四

2021-06-06 16:58:20 字數 1425 閱讀 7994

在檔案操作中除了開啟操作以及讀寫操作,還有幾種比較常見的操作。下面介紹一下這些操作中涉及到的函式。

一.移動位置指標的函式

rewind函式和fseek函式,這兩個函式的原型是:

void rewind(file *fp);     將位置指標移動到檔案首

int fseek(file *fp,long int offset,int origin);   將位置指標移動到距離origin的offset位元組數的位置

其中對於fseek函式中的引數,origin為起始點,offset為距離origin的偏移位元組數

origin的值有三個:seek_set(0)—>檔案首,seek_cur(1)—>當前位置,seek_end(2)—>檔案尾。

注意:1)若檔案是以追加方式開啟,則當進行寫操作時,這兩個函式是不起作用的,無論將位置指標移動哪個位置,始終將新增的資料追加到檔案末尾。

二.其他常用函式

1.ftell函式

long int ftell(file *fp);

計算當前位置指標距檔案首的位元組數,若出錯,則返回-1l。

利用ftell函式可以計算出檔案的大小。

2.feof函式

int feof(file *fp);

檢測當前位置指標是否到達檔案末尾,若到達檔案末尾,則返回乙個非零值,否則返回0。

3.ferror函式

int ferror(file *fp);

檢測檔案操作過程中是否出錯,若出錯,則返回乙個非零值,否則返回0

4.remove函式

int remove(const char *filename);

刪除檔案,若刪除成功,則返回0,否則返回非零值

5.rename函式

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

將檔案重新命名,重新命名成功則返回0,否則返回非零值。

6.freopen函式

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

實現重定向輸入輸出。此函式在測試資料時用得比較多。

7.fclose函式

int fclose(file *stream);

關閉乙個流,若成功,則返回0,否則返回-1.注意每次對檔案操作完之後需關閉流,否則可能會造成資料丟失。

測試程式:

#include#includeint main(void)

for(i=0;i<10;i++)

return

0;}

假設工程目錄下已經存在input.txt,檔案中的資料為1 2 -1 3 4 5 7 8 9 10,則執行之後,不需要從控制台輸入資料,程式直接從input.txt中讀取資料,然後將結果輸出到output.txt中,不直接向控制台輸出結果。

C語言檔案操作解析 四

c語言檔案操作解析 四 在檔案操作中除了開啟操作以及讀寫操作,還有幾種比較常見的操作。下面介紹一下這些操作中涉及到的函式。一.移動位置指標的函式 rewind函式和fseek函式,這兩個函式的原型是 void rewind file fp 將位置指標移動到檔案首 int fseek file fp,...

C語言檔案操作解析 四

c語言檔案操作解析 四 在檔案操作中除了開啟操作以及讀寫操作,還有幾種比較常見的操作。下面介紹一下這些操作中涉及到的函式。一.移動位置指標的函式 rewind函式和fseek函式,這兩個函式的原型是 void rewind file fp 將位置指標移動到檔案首 int fseek file fp,...

C語言檔案操作解析 一

c語言檔案操作解析 一 在討論c語言檔案操作之前,先了解一下與檔案相關的東西。一.文字檔案和二進位制檔案 文字檔案的定義 由若干行字元構成的計算機檔案,存在於計算機系統中。文字檔案只能儲存檔案中的有效字元資訊,不能儲存影象 聲音等資訊。狹義上的二進位制檔案則指除開文字檔案之外的檔案,如 doc文件。...