【C】文件操作fopen与fclose
生活随笔
收集整理的這篇文章主要介紹了
【C】文件操作fopen与fclose
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
目錄
函數(shù)
1.fopen
2.fclose
3.freopen
函數(shù)
頭文件
#include<stdio.h>
1.fopen
FILE *fopen(const char *restrict dilename,const char* restrict mode);- 作用:打開文件
- 參數(shù):
- 第一個(gè)是含有要打開文件名的字符串("文件名"可以包含關(guān)于文件位置信息,如驅(qū)動器符或路徑)。
- 注意:在fopen函數(shù)調(diào)用文件名中含有字符'\'時(shí),C語言有時(shí)會當(dāng)作是轉(zhuǎn)義字符,可以用'\\'代替'\'
- 第二個(gè)參數(shù)是"模式字符串",用來指定打算對文件執(zhí)行的操作,如下圖所示:
- 圖中可以看出,對寫數(shù)據(jù)和追加數(shù)據(jù)進(jìn)行了區(qū)分。當(dāng)給文件寫數(shù)據(jù)時(shí),通常會對先前的內(nèi)容進(jìn)行覆蓋,只覆蓋新寫入的數(shù)據(jù),未被修改的不動;追加時(shí)保留原文件內(nèi)容;截取就是只保留新寫的內(nèi)容,原內(nèi)容被刪除。
- 還有一點(diǎn)需要強(qiáng)調(diào)的是,當(dāng)打開文件用于讀和寫時(shí),如果沒有先調(diào)用一個(gè)文件定位函數(shù),或者沒有調(diào)用fflush函數(shù)就不能從讀取模式轉(zhuǎn)換為寫模式,除非讀操作遇到了文件尾部'\n'.
- 第一個(gè)是含有要打開文件名的字符串("文件名"可以包含關(guān)于文件位置信息,如驅(qū)動器符或路徑)。
- 返回值:文件指針。程序通常把該指針存儲在一個(gè)變量中,稍后早需要對文件進(jìn)行操作時(shí)使用它。當(dāng)無法打開文件時(shí),會返回空指針,無法打開的原因可能是文件不存在,也可能是文件位置不對,也可能是我們沒有打開文件的權(quán)限。
fopen常見調(diào)用形式為:
fp=fopen("indat","r");//fp是FILE*類型的變量2.fclose
int fclose(FILE* stream);- ?作用:關(guān)閉文件
- 參數(shù):
- 文件指針,來自于fopen,freopen
- 返回值:成功關(guān)閉返回0,失敗返回錯(cuò)誤碼EOF
fopen常見調(diào)用形式為:
int main() {FILE* fp;fp=fopen("indat","r");//FILE* fp=fopen(...);if(fp!=NULL)//if(fp=fopen(...)!=NULL){...}...fclose(fp);return 0; }3.freopen
FILE* fropen(const char* restrict filename,const char * restrict mode,FILE* restrict stream);作用:為打開的流附加一個(gè)不同的文件。
常用的用法是把文件和一個(gè)標(biāo)準(zhǔn)流(stdin,stdout或sterr)相關(guān)聯(lián)。例如,為了使程序開始往文件foo中寫入數(shù)據(jù),可以使用下列形式的freopen函數(shù)調(diào)用:
if(freopen("foo","w",stdout)==NULL) { ... }?在關(guān)閉了先前的(通過命令行重定向或者之前的freopen函數(shù)調(diào)用)與stdout相關(guān)聯(lián)的所有文件之后,freopen函數(shù)將打開foo,并將其與stdout相關(guān)聯(lián)。
總結(jié)
以上是生活随笔為你收集整理的【C】文件操作fopen与fclose的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机体系结构(复习资料)
- 下一篇: 亚阈值区MOSFET阈值电压Vth随温度