C語言文件操作解析詳解及實例代碼
在文件操作中除了打開操作以及讀寫操作,還有幾種比較常見的操作。下面介紹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<stdio.h>
#include<stdlib.h>
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("%dn",a[i]);
}
return 0;
}
假設工程目錄下已經存在,文件中的數據為1 2 -1 3 4 5 7 8 9 10,則運行之後,不需要從控制枱輸入數據,程序直接從中讀取數據,然後將結果輸出到中,不直接向控制枱輸出結果。
-
2017年3月計算機二級C語言考試摸底測試題
以下是yjbys考試網小編整理的2017年3月計算機二級C語言考試摸底測試題,希望對大家有所幫助,祝大家計算機二級考試順利通過。一、選擇題(每小題1分。)(1)程序流程圖中帶有箭頭的線段表示的是()。A.圖元關係B.數據流C.控制流D.調用關係(2)結構化程序設計的基本原則...
-
C語言if else語句彙總
對於很多情況,順序結構的代碼是遠遠不夠的,大家都接觸過C語言吧,下面是小編為大家整理的C語言ifelse語句,希望對大家有所幫助。C語言ifelse語句在C語言中,使用if和else關鍵字對條件進行判斷。請先看下面的代碼:#includeintmain(){intage;printf("請輸入你的年齡:");sc...
-
C語言精選面試題詳解
C語言是IT編程中最基礎的語言,在面試中,基本可以忽略又或者格外重要。下面是小編為大家整理的C語言精選面試題詳解,歡迎參考~分析這些面試題,本身包含很強的趣味性;而作為一名研發人員,通過對這些面試題的深入剖析則可進一步增強自身的內功。試題1:以下是引用片段:voi...
-
2017年計算機二級考試C語言備考題及答案
計算機二級對於很多考生來説還是比較有難度的,那麼怎樣順利通過二級考試呢?這就需要大家平時多練習和找方法了。以下是本站小編整理的2017年計算機二級考試C語言備考題及答案,希望對大家有幫助!1.(A)是構成C語言程序的基本單位。A、函數B、過程C、子程序D、子例...