C語言 文件操作解析詳解及實(shí)例代碼
C語言文件操作解析
在文件操作中除了打開操作以及讀寫操作,還有幾種比較常見的操作。下面介紹一下這些操作中涉及到的函數(shù)。
一.移動位置指針的函數(shù)
rewind函數(shù)和fseek函數(shù),這兩個(gè)函數(shù)的原型是:
void rewind(FILE *fp); 將位置指針移動到文件首
int fseek(FILE *fp,long int offset,int origin); 將位置指針移動到距離origin的offset字節(jié)數(shù)的位置
其中對于fseek函數(shù)中的參數(shù),origin為起始點(diǎn),offset為距離origin的偏移字節(jié)數(shù)
origin的值有三個(gè):SEEK_SET(0)—>文件首,SEEK_CUR(1)—>當(dāng)前位置,SEEK_END(2)—>文件尾。
注意:1)若文件是以追加方式打開,則當(dāng)進(jìn)行寫操作時(shí),這兩個(gè)函數(shù)是不起作用的,無論將位置指針移動哪個(gè)位置,始終將添加的數(shù)據(jù)追加到文件末尾。
二.其他常用函數(shù)
1.ftell函數(shù)
long int ftell(FILE *fp);
計(jì)算當(dāng)前位置指針距文件首的字節(jié)數(shù),若出錯(cuò),則返回-1L。
利用ftell函數(shù)可以計(jì)算出文件的大小。
2.feof函數(shù)
int feof(FILE *fp);
檢測當(dāng)前位置指針是否到達(dá)文件末尾,若到達(dá)文件末尾,則返回一個(gè)非零值,否則返回0。
3.ferror函數(shù)
int ferror(FILE *fp);
檢測文件操作過程中是否出錯(cuò),若出錯(cuò),則返回一個(gè)非零值,否則返回0
4.remove函數(shù)
int remove(const char *filename);
刪除文件,若刪除成功,則返回0,否則返回非零值
5.rename函數(shù)
int rename(const char *oldname,const char *newname);
將文件重命名,重命名成功則返回0,否則返回非零值。
6.freopen函數(shù)
FILE* freopen(const char *filename,const char *mode,FILE *stream);
實(shí)現(xiàn)重定向輸入輸出。此函數(shù)在測試數(shù)據(jù)時(shí)用得比較多。
7.fclose函數(shù)
int fclose(FILE *stream);
關(guān)閉一個(gè)流,若成功,則返回0,否則返回-1.注意每次對文件操作完之后需關(guān)閉流,否則可能會造成數(shù)據(jù)丟失。
測試程序:
#include<stdio.h> #include<stdlib.h> int main(void) { freopen("input.txt","r",stdin); freopen("output.txt","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\n",a[i]); } return 0; }
假設(shè)工程目錄下已經(jīng)存在input.txt,文件中的數(shù)據(jù)為1 2 -1 3 4 5 7 8 9 10,則運(yùn)行之后,不需要從控制臺輸入數(shù)據(jù),程序直接從input.txt中讀取數(shù)據(jù),然后將結(jié)果輸出到output.txt中,不直接向控制臺輸出結(jié)果。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
上一篇:Mingw64編譯wxWidgets 3.0.2常見錯(cuò)誤分析
欄 目:C語言
下一篇:C++ boost::asio編程-異步TCP詳解及實(shí)例代碼
本文標(biāo)題:C語言 文件操作解析詳解及實(shí)例代碼
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/1969.html
您可能感興趣的文章
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用函數(shù)刪除字符
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)式函數(shù)庫
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言中對數(shù)函數(shù)的表達(dá)式 c語言中對數(shù)怎么表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段函數(shù)
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排序法函數(shù)
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段函數(shù)
- 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求階乘


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達(dá)式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05織夢dedecms什么時(shí)候用欄目交叉功能?
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10delphi制作wav文件的方法
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 04-02jquery與jsp,用jquery