版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章文件
用文件可以將輸入或輸出數(shù)據(jù)有組織的長期保存在磁盤中。數(shù)據(jù)可以做到一次輸入,反復(fù)使用,提高輸入輸出效率。“文件”是指一組相關(guān)數(shù)據(jù)的集合。每個(gè)文件均有一個(gè)名稱,即文件名,可以唯一標(biāo)識(shí)一個(gè)文件。例如:源程序文件、目標(biāo)文件、可執(zhí)行文件、庫文件(頭文件)等。按文件存儲(chǔ)數(shù)據(jù)的形式
ASCII文件(或稱文本文件)
ASCII碼文件中每個(gè)字節(jié)存放一個(gè)ASCII代碼,代表一個(gè)字符,此種存儲(chǔ)形式便于輸出顯示,在DOS操作系統(tǒng)下可以直接閱讀。
二進(jìn)制文件
二進(jìn)制文件中的數(shù)據(jù)是按照在內(nèi)存中的存儲(chǔ)格式原樣存放的,此種存儲(chǔ)形式節(jié)省存儲(chǔ)單元。二進(jìn)制文件在DOS操作系統(tǒng)下不能直接閱讀。文件的分類文本文件二進(jìn)制文件ASCII文件例:整數(shù)1949占用4個(gè)字節(jié)占用2個(gè)字節(jié)00110001001110010011010000111001'1''9''4''9'0000011110011101文件的分類文件的操作流程1、建立/打開文件2、從文件中讀數(shù)據(jù)或向文件中寫數(shù)據(jù)3、關(guān)閉文件緩沖文件系統(tǒng)寫操作:從用戶角度看,文件寫操作的是將某個(gè)變量或數(shù)組的內(nèi)容輸出到文件中;實(shí)際上,進(jìn)行文件的寫操作時(shí),數(shù)據(jù)從內(nèi)存中的程序數(shù)據(jù)區(qū),先放到文件緩沖區(qū)暫存,當(dāng)緩沖區(qū)放滿后,數(shù)據(jù)才被整塊輸出到外存儲(chǔ)器上的文件中。文件緩沖區(qū)讀操作:在進(jìn)行文件的操作時(shí),先將外存文件中的一塊數(shù)據(jù)一次讀到文件緩沖區(qū)中;然后再從緩沖區(qū)中取出程序所需的數(shù)據(jù),送入程序數(shù)據(jù)區(qū)中的指定變量或數(shù)組元素所對(duì)應(yīng)的內(nèi)存單元中。文件緩沖區(qū)系統(tǒng)在內(nèi)存中為每一個(gè)正在使用的文件開辟一個(gè)文件信息區(qū),用來存放文件的相關(guān)信息(文件名、文件狀態(tài)、文件當(dāng)前讀寫位置、緩沖區(qū)狀態(tài)等),這些信息是保存在一個(gè)結(jié)構(gòu)體變量中。通過它才能順利進(jìn)行文件操作。文件指針typedefstruct{shortlevel;//緩沖區(qū)“滿”或“空”的程度unsignedflags;//文件狀態(tài)標(biāo)志charfd;//文件描述符unsignedcharhold;//如無緩沖區(qū)不讀取字符shortbsize;//緩沖區(qū)的大小unsignedchar*baffer;//數(shù)據(jù)緩沖區(qū)的讀寫位置unsignedchar*curp;//文件讀寫位置指針unsignedistemp;//臨時(shí)文件,指示器shorttoken;//用于有效性檢查}FILE;在C語言中對(duì)每個(gè)正在使用的文件,用一個(gè)指針變量指向?qū)?yīng)的文件信息區(qū),這個(gè)指針變量稱為文件指針。
定義文件指針的一般形式為:
FILE*指針變量標(biāo)識(shí)符;文件的三種基本使用方式只讀方式:為讀(輸入)文本文件打開文件。若文件不存在,返回NULL。只寫方式:為寫(輸出)文本文件打開文件。若文件不存在,則建立一個(gè)新文件;若文件已存在,則清空文件。追加方式:為寫(輸出)文本文件打開文件。若文件已存在,則保持原來文件的內(nèi)容,將新的數(shù)據(jù)增加到原來數(shù)據(jù)的后面;若文件不存在,則建立一個(gè)新文件。文件類型只讀方式只寫方式追加方式讀寫模式ASCII文件rwar+w+a+二進(jìn)制文件rbwbabrb+wb+ab+文件的打開與關(guān)閉文件的打開函數(shù)(fopen)FILE*fp;fp=fopen(文件名,使用文件方式);函數(shù)功能:按指定的文件使用方式打開指定的文件。若文件打開成功,為該文件分配一個(gè)文件緩沖區(qū)和一個(gè)FILE類型變量,返回一個(gè)FILE類型指針;若文件打開失敗,返回NULL。文件關(guān)閉函數(shù)fclose()
文件的打開與關(guān)閉
FILE*fp;fclose(fp);
fp:已經(jīng)打開的文件指針。函數(shù)功能:關(guān)閉fp指定的文件,釋放該文件的緩沖區(qū)、FILE類型變量及文件指針。若文件關(guān)閉成功,則返回0;若文件關(guān)閉失敗,則返回非0值。單字符讀寫函數(shù)寫函數(shù):
intfputc(charch,FILE*fp);
功能:將字符ch寫入到文件指針fp指向文件的位置。
成功時(shí)返回字符本身,否則返回EOF。讀函數(shù):
intfgetc(FILE*fp);
功能:從文件指針fp指向文件的位置讀取一個(gè)字符,
若成功則返回該字符,否則返回EOF。讀取完成后指針自動(dòng)后移指向下一個(gè)字符。字符串讀寫函數(shù)寫函數(shù):
intfputs(char*str,FILE*fp);
功能:將字符串str寫入到文fp指向文件的位置。
成功時(shí)返回非0值,否則返回EOF。讀函數(shù):
char*fgets(char*str,intn,FILE*fp);
功能:從fp指向文件的位置n個(gè)字符放入字符串str中,
若成功則返回該字符串地址,否則返回NULL。格式化讀寫函數(shù)
FILE*fp;
fprintf(fp,格式控制串,輸出項(xiàng)參數(shù)表
);
格式控制串和輸出項(xiàng)參數(shù)表的規(guī)定和使用方法與printf函數(shù)相同。函數(shù)功能:將輸出項(xiàng)按指定格式寫入fp所指向的文件中。若輸出操作成功,返回寫入的字節(jié)數(shù);若輸出操作失敗,則返回EOF。與標(biāo)準(zhǔn)文件的格式輸入輸出函數(shù)scanf和printf相對(duì)應(yīng),文本文件也有格式輸入輸出函數(shù)fscanf和fprintf。它們的功能和格式基本相同,不同之處在于scanf和printf的讀寫對(duì)象是終端(鍵盤和顯示器),fscanf和fprintf的讀寫對(duì)象是磁盤文件。
FILE*fp;
fscanf(fp,格式控制串,地址表);格式控制串和地址表的規(guī)定和使用方法與scanf函數(shù)相同。函數(shù)功能:按格式控制串所描述的格式,從fp所指向的文件中
讀取數(shù)據(jù),送到指定的內(nèi)存地址單元中。若輸入操作成功,返回實(shí)際讀出的數(shù)據(jù)項(xiàng)個(gè)數(shù),不包括數(shù)據(jù)分隔符。若沒有讀數(shù)據(jù)項(xiàng),則返回0。若文件結(jié)束或調(diào)用失敗,則返回EOF。格式化讀寫函數(shù)
fwrite(p,size,n,fp);
p:某類型指針;
size:某類型數(shù)據(jù)存儲(chǔ)空間的字節(jié)數(shù);
n:此次寫入文件的數(shù)據(jù)項(xiàng)數(shù);
fp:文件指針變量。數(shù)據(jù)塊讀寫函數(shù)運(yùn)用數(shù)據(jù)塊輸入輸出函數(shù)可建立整型、實(shí)型、結(jié)構(gòu)體類型等各種類型的二進(jìn)制文件。函數(shù)功能:將p指向的存儲(chǔ)區(qū)中n個(gè)數(shù)據(jù)項(xiàng)寫入fp所指向的文件。若輸出操作成功,返回寫入的數(shù)據(jù)項(xiàng)數(shù);若輸出操作失敗,則返回0。數(shù)據(jù)塊讀寫函數(shù)
fread(p,size,n,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年直升機(jī)發(fā)動(dòng)機(jī)行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2024-2030年登機(jī)梯行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2024-2030年電腦數(shù)控車床行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2024-2030年電磁兼容屏蔽及測(cè)試設(shè)備行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2024-2030年電烤箱行業(yè)市場(chǎng)發(fā)展分析及發(fā)展前景與投資研究報(bào)告
- 2024-2030年電氣設(shè)備市場(chǎng)發(fā)展現(xiàn)狀調(diào)查及供需格局分析預(yù)測(cè)報(bào)告
- 2024-2030年電動(dòng)自行車行業(yè)市場(chǎng)前景分析及發(fā)展趨勢(shì)與投資風(fēng)險(xiǎn)研究報(bào)告
- 2024-2030年生物試劑行業(yè)風(fēng)險(xiǎn)投資發(fā)展分析及投資融資策略研究報(bào)告
- 2024-2030年瓜拉納行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2024-2030年珠寶首飾行業(yè)市場(chǎng)發(fā)展分析及競(jìng)爭(zhēng)形勢(shì)與投資發(fā)展前景研究報(bào)告
- 創(chuàng)業(yè)創(chuàng)新產(chǎn)業(yè)園建設(shè)項(xiàng)目可行性研究報(bào)告
- 配電柜的維護(hù)、管理、保養(yǎng)方案
- 《客艙安全與應(yīng)急處置》-課件:旅客擾亂行為的處置(5-9項(xiàng))
- 澳大利亞移動(dòng)通信市場(chǎng)概述
- 課件:深刻認(rèn)識(shí)和把握新質(zhì)生產(chǎn)力推進(jìn)我國經(jīng)濟(jì)高質(zhì)量發(fā)展
- 生產(chǎn)車間負(fù)責(zé)人述職報(bào)告
- 子宮脫垂講課
- 藥店商品管理與陳列
- 拉森鋼板樁監(jiān)理實(shí)施細(xì)則樣本
- 2024年中國鐵道科學(xué)研究院集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 愛國教育主題班會(huì) 喜迎新中國成立75周年
評(píng)論
0/150
提交評(píng)論