C語言中文件操作詳解及實例代碼
在文件操作中除了打開操作以及讀寫操作,還有幾種比較常見的操作。以下是本站小編搜索整理的關於這些操作中涉及到的函數,,需要的朋友可以參考本文!想了解更多相關信息請持續關注我們應屆畢業生考試網!
一.移動位置指針的函數
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)若文件是以追加方式打開,則當進行寫操作時,這兩個函數是不起作用的',無論將位置指針移動哪個位置,始終將添加的數據追加到文件末尾。
二.其他常用函數
l函數
long int ftell(FILE *fp);
計算當前位置指針距文件首的字節數,若出錯,則返回-1L。
利用ftell函數可以計算出文件的大小。
函數
int feof(FILE *fp);
檢測當前位置指針是否到達文件末尾,若到達文件末尾,則返回一個非零值,否則返回0。
or函數
int ferror(FILE *fp);
檢測文件操作過程中是否出錯,若出錯,則返回一個非零值,否則返回0
ve函數
int remove(const char *filename);
刪除文件,若刪除成功,則返回0,否則返回非零值
me函數
int rename(const char *oldname,const char *newname);
將文件重命名,重命名成功則返回0,否則返回非零值。
pen函數
FILE* freopen(const char *filename,const char *mode,FILE *stream);
實現重定向輸入輸出。此函數在測試數據時用得比較多。
se函數
int fclose(FILE *stream);
關閉一個流,若成功,則返回0,否則返回-1.注意每次對文件操作完之後需關閉流,否則可能會造成數據丟失。
測試程序:
#include
#include
int main(void)
{
freopen("","r",stdin);
freopen("","w+",stdout);
int i;
int a[10];
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<10;i++)
{
printf("%d",a[i]);
}
return 0;
}
假設工程目錄下已經存在,文件中的數據為1 2 -1 3 4 5 7 8 9 10,則運行之後,不需要從控制枱輸入數據,程序直接從中讀取數據,然後將結果輸出到中,不直接向控制枱輸出結果。
-
C語言如何提高程序效率
好的代碼沒有一個統一的衡量標準,在程序員們的世界裏大家也是各自按照自己的標準衡量着自己和別人的代碼。不過有一個標準幾乎是被所有人認同的。服役時間越長、出錯率越高的代碼就是好代碼。所有的編程方法、代碼技巧甚至於設計模式都是為了達到這個目的而產生...
-
C語言與JAVA的區別
很多人不明白C語言與C++和JAVE之間的區別,為此,為大家收集整理了下面的內容,歡迎閲讀!C語言C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語...
-
C語言自增(++)和自減(--)
C語言源自KenThompson發明的B語言,那麼大家知道C語言自增(++)和自減(--)是什麼呢?下面一起來看看!一個整數自身加一可以這樣寫:a+=1;它等價於a=a+1;。但是在C語言中還有一種更簡單的寫法,就是a++;或者++a;。這種寫法叫做自加或自增;意思很明確,就是自身加一。相應...
-
C語言轉義字符和格式控制符參考
導語:字符型常量所表示的值是字符型變量所能包含的值。我們可以用ASCII表達式來表示一個字符型常量,或者用單引號內加反斜槓表示轉義字符。下面是C語言轉義字符和格式控制符參考,歡迎學習:轉義字符參考:a:蜂鳴,響鈴:回退:向後退一格f:換頁:換行,光標到下行行首:回車,光...