在C語言中用一個指針變量指向一個文件,這個指針稱為文件指針。通過文件指針就可對它所指的文件進(jìn)行各種操作。

創(chuàng)新互聯(lián)建站致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,包括成都網(wǎng)站設(shè)計、做網(wǎng)站、SEO優(yōu)化、網(wǎng)絡(luò)推廣、整站優(yōu)化營銷策劃推廣、電子商務(wù)、移動互聯(lián)網(wǎng)營銷等。創(chuàng)新互聯(lián)建站為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制及解決方案,創(chuàng)新互聯(lián)建站核心團(tuán)隊10年專注互聯(lián)網(wǎng)開發(fā),積累了豐富的網(wǎng)站經(jīng)驗,為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設(shè)服務(wù),在網(wǎng)站建設(shè)行業(yè)內(nèi)樹立了良好口碑。
定義說明文件指針的一般形式為:
FILE *指針變量標(biāo)識符;
其中FILE應(yīng)為大寫,它實際上是由系統(tǒng)定義的一個結(jié)構(gòu),該結(jié)構(gòu)中含有文件名、文件狀態(tài)和文件當(dāng)前位置等信息。在編寫源程序時不必關(guān)心FILE結(jié)構(gòu)的細(xì)節(jié)。例如:
FILE *fp;
表示fp是指向FILE結(jié)構(gòu)的指針變量,通過fp即可找存放某個文件信息的結(jié)構(gòu)變量,然后按結(jié)構(gòu)變量提供的信息找到該文件,實施對文件的操作。習(xí)慣上也籠統(tǒng)地把fp稱為指向一個文件的指針。
文件在進(jìn)行讀寫操作之前要先打開,使用完畢要關(guān)閉。所謂打開文件,實際上是建立文件的各種有關(guān)信息,并使文件指針指向該文件,以便進(jìn)行其它操作。關(guān)閉文件則斷開指針與文件之間的聯(lián)系,也就禁止再對該文件進(jìn)行操作。
在C語言中,文件操作都是由庫函數(shù)來完成的。在本章內(nèi)將介紹主要的文件操作函數(shù)。
文件的打開(fopen函數(shù))
fopen函數(shù)用來打開一個文件,其調(diào)用的一般形式為:
文件指針名 = fopen( 文件名, 使用文件方式 );
其中:
“文件指針名”必須是被說明為FILE 類型的指針變量;
“文件名”是被打開文件的文件名;
“使用文件方式”是指文件的類型和操作要求;
“文件名”是字符串常量或字符串?dāng)?shù)組。
例如:
FILE *fp;
fp=("file a","r");
其意義是在當(dāng)前目錄下打開文件file a,只允許進(jìn)行“讀”操作,并使fp指向該文件。又如:
FILE *fphzk;
fphzk=("c:\\hzk16","rb");
其意義是打開C驅(qū)動器磁盤的根目錄下的文件hzk16,這是一個二進(jìn)制文件,只允許按二進(jìn)制方式進(jìn)行讀操作。兩個反斜線“\\ ”中的第一個表示轉(zhuǎn)義字符,第二個表示根目錄。
使用文件的方式共有12種,下面給出了它們的符號和意義。
文件使用方式
意義
rt 只讀打開一個文本文件,只允許讀數(shù)據(jù)
wt 只寫打開或建立一個文本文件,只允許寫數(shù)據(jù)
at 追加打開一個文本文件,并在文件末尾寫數(shù)據(jù)
rb 只讀打開一個二進(jìn)制文件,只允許讀數(shù)據(jù)
wb 只寫打開或建立一個二進(jìn)制文件,只允許寫數(shù)據(jù)
ab 追加打開一個二進(jìn)制文件,并在文件末尾寫數(shù)據(jù)
rt+ 讀寫打開一個文本文件,允許讀和寫
wt+ 讀寫打開或建立一個文本文件,允許讀寫
at+ 讀寫打開一個文本文件,允許讀,或在文件末追加數(shù)據(jù)
rb+ 讀寫打開一個二進(jìn)制文件,允許讀和寫
wb+ 讀寫打開或建立一個二進(jìn)制文件,允許讀和寫
ab+ 讀寫打開一個二進(jìn)制文件,允許讀,或在文件末追加數(shù)據(jù)
對于文件使用方式有以下幾點說明。
1) 文件使用方式由r、w、a、t、b 和 + 六個字符拼成,各字符的含義是:
r(read):讀
w(write):寫
a(append):追加
t(text):文本文件,可省略不寫
b(banary):二進(jìn)制文件
+:讀和寫
2) 凡用“r”打開一個文件時,該文件必須已經(jīng)存在,且只能從該文件讀出。
3) 用“w”打開的文件只能向該文件寫入。若打開的文件不存在,則以指定的文件名建立該文件,若打開的文件已經(jīng)存在,則將該文件刪去,重建一個新文件。
4) 若要向一個已存在的文件追加新的信息,只能用“a”方式打開文件。但此時該文件必須是存在的,否則將會出錯。
5) 在打開一個文件時,如果出錯,fopen將返回一個空指針值NULL。在程序中可以用這一信息來判別是否完成打開文件的工作,并作相應(yīng)的處理。因此常用以下程序段打開文件:
if((fp=fopen("c:\\hzk16","rb")==NULL){
printf("\nerror on open c:\\hzk16 file!");
getch();
exit(1);
}
這段程序的意義是,如果返回的指針為空,表示不能打開C盤根目錄下的hzk16文件,則給出提示信息“error on open c:\ hzk16 file!”,下一行g(shù)etch()的功能是從鍵盤輸入一個字符,但不在屏幕上顯示。在這里,該行的作用是等待,只有當(dāng)用戶從鍵盤敲任一鍵時,程序才繼續(xù)執(zhí)行,因此用戶可利用這個等待時間閱讀出錯提示。敲鍵后執(zhí)行exit(1)退出程序。
6) 把一個文本文件讀入內(nèi)存時,要將ASCII碼轉(zhuǎn)換成二進(jìn)制碼,而把文件以文本方式寫入磁盤時,也要把二進(jìn)制碼轉(zhuǎn)換成ASCII碼,因此文本文件的讀寫要花費(fèi)較多的轉(zhuǎn)換時間。對二進(jìn)制文件的讀寫不存在這種轉(zhuǎn)換。
7) 標(biāo)準(zhǔn)輸入文件(鍵盤),標(biāo)準(zhǔn)輸出文件(顯示器),標(biāo)準(zhǔn)出錯輸出(出錯信息)是由系統(tǒng)打開的,可直接使用。
文件關(guān)閉函數(shù)(fclose函數(shù))
文件一旦使用完畢,應(yīng)用關(guān)閉文件函數(shù)把文件關(guān)閉,以避免文件的數(shù)據(jù)丟失等錯誤。
fclose函數(shù)調(diào)用的一般形式是:
fclose(文件指針);
例如:
fclose(fp);
正常完成關(guān)閉文件操作時,fclose函數(shù)返回值為0。如返回非零值則表示有錯誤發(fā)生。
假如文件是存儲在硬盤上,那么所有內(nèi)容是用磁化的方法寫的,能掉電不丟失。
你的程序?qū)⑽募蜷_后,將其內(nèi)容的第1行讀入了計算機(jī)的隨機(jī)存儲器中(具體就是line數(shù)組)
關(guān)閉文件后,文件仍然保持不變
line數(shù)組已經(jīng)讀到了數(shù)據(jù),這些數(shù)據(jù)雖然等于文件的第1行,但已經(jīng)與文件沒有關(guān)系了,你使用和修改這些數(shù)據(jù)不會影響到文件,除非你再打開這個文件向里邊寫。
在編輯框中輸出的是line數(shù)組的內(nèi)容,它確實與文件的第1行內(nèi)容相同!以后文件內(nèi)容改了,你還要輸出的話,需要再打開文件讀一遍。
1、首先使用VS新建空工程,直接點擊確定。
2、點擊新建項選項新建c文件,用于C語言編譯器,輸入main.c文件。
3、然后新建一個C文件。
4、將上述參考代碼,復(fù)制到main.c文件內(nèi),直接編譯即可。
5、編譯完成后,運(yùn)行exe程序,執(zhí)行后就顯示出了txt文件內(nèi)容。
FILE *fp
fp = fopen();
fclose(fp);
int fd;
fd = open();
close(fd);
共兩種形式,自己選擇。
本文題目:c語言調(diào)用函數(shù)來關(guān)閉文件 c語言 調(diào)用函數(shù)
標(biāo)題網(wǎng)址:http://www.chinadenli.net/article36/dddjpsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、做網(wǎng)站、網(wǎng)站維護(hù)、網(wǎng)站營銷、商城網(wǎng)站、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)