《c語(yǔ)言程序設(shè)計(jì)教學(xué)》第13章文件操作課件_第1頁(yè)
《c語(yǔ)言程序設(shè)計(jì)教學(xué)》第13章文件操作課件_第2頁(yè)
《c語(yǔ)言程序設(shè)計(jì)教學(xué)》第13章文件操作課件_第3頁(yè)
《c語(yǔ)言程序設(shè)計(jì)教學(xué)》第13章文件操作課件_第4頁(yè)
《c語(yǔ)言程序設(shè)計(jì)教學(xué)》第13章文件操作課件_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第13章 文件操作第1頁(yè),共34頁(yè)。主要內(nèi)容 二進(jìn)制文件和文本文件 文件的打開(kāi)和關(guān)閉 文件的順序讀寫(xiě)第2頁(yè),共34頁(yè)。文件的概念文件有不同的類(lèi)型,在程序設(shè)計(jì)中,主要用到兩種文件:程序文件。包括源程序文件(后綴為.c)、目標(biāo)文件(后綴為.obj)、可執(zhí)行文件(后綴為.exe)等。這種文件的內(nèi)容是程序代碼。數(shù)據(jù)文件。文件的內(nèi)容不是程序,而是供程序運(yùn)行時(shí)讀寫(xiě)的數(shù)據(jù),如:在程序運(yùn)行過(guò)程中輸出到磁盤(pán)(或其他外部設(shè)備)的數(shù)據(jù),或在程序運(yùn)行過(guò)程中供讀入的數(shù)據(jù)。如一批學(xué)生的成績(jī)數(shù)據(jù),或貨物交易的數(shù)據(jù)等。第3頁(yè),共34頁(yè)。In the previous,從終端的鍵盤(pán)輸入數(shù)據(jù),運(yùn)行結(jié)果輸出到終端顯示器上。數(shù)據(jù)的存

2、儲(chǔ)在計(jì)算機(jī)內(nèi)存中,當(dāng)程序結(jié)束,內(nèi)存的中數(shù)據(jù)就會(huì)丟失。常常需要將一些數(shù)據(jù)保存到光盤(pán)、磁盤(pán)等外存儲(chǔ)器上,達(dá)到重復(fù)使用,永久保存數(shù)據(jù)的目的。第4頁(yè),共34頁(yè)。第5頁(yè),共34頁(yè)。C語(yǔ)言文件有兩種形式: (1)文本文件(也稱(chēng)ASCII碼文件) (2)二進(jìn)制文件區(qū)別:存儲(chǔ)數(shù)值型數(shù)據(jù)的方式不同。 文本文件中,每個(gè)數(shù)字都單獨(dú)占用一個(gè)字節(jié)的存儲(chǔ)空間 二進(jìn)制文件中,把整個(gè)數(shù)字作為一個(gè)二進(jìn)制數(shù)來(lái)存儲(chǔ),并非數(shù)字的每一個(gè)數(shù)字都占用單獨(dú)的存儲(chǔ)空間二進(jìn)制文件和文本文件第6頁(yè),共34頁(yè)。例:short n=123; 第7頁(yè),共34頁(yè)。無(wú)論C語(yǔ)言文件的內(nèi)容是什么,都把數(shù)據(jù)看成字節(jié)構(gòu)成的序列,即“字節(jié)流”。文件的存取以字節(jié)為單位

3、。輸入/輸出的數(shù)據(jù)流僅受程序控制而不受物理符號(hào)的控制,所以C語(yǔ)言文件也稱(chēng)流式文件第8頁(yè),共34頁(yè)。第9頁(yè),共34頁(yè)。第10頁(yè),共34頁(yè)。 緩沖文件系統(tǒng)中,關(guān)鍵的概念是“文件類(lèi)型指針”,簡(jiǎn)稱(chēng)“文件指針” 每個(gè)被使用的文件都在內(nèi)存中開(kāi)辟一個(gè)相應(yīng)的文件信息區(qū),用來(lái)存放文件的有關(guān)信息(如文件的名字、文件狀態(tài)及文件當(dāng)前位置等) 這些信息是保存在一個(gè)結(jié)構(gòu)體變量中的。該結(jié)構(gòu)體類(lèi)型是由系統(tǒng)聲明的,取名為FILE 聲明FILE結(jié)構(gòu)體類(lèi)型的信息包含在頭文件“stdio.h”中 一般設(shè)置一個(gè)指向FILE類(lèi)型變量的指針變量,然后通過(guò)它來(lái)引用這些FILE類(lèi)型變量第11頁(yè),共34頁(yè)。文件的打開(kāi)和關(guān)閉 用fopen函數(shù)打開(kāi)

4、數(shù)據(jù)文件 用fclose函數(shù)關(guān)閉數(shù)據(jù)文件 使用上述函數(shù)時(shí),需要#include第12頁(yè),共34頁(yè)。 對(duì)文件讀寫(xiě)之前應(yīng)該“打開(kāi)”該文件,在使用結(jié)束之后應(yīng)“關(guān)閉”該文件。 所謂“打開(kāi)”是指為文件建立相應(yīng)的信息區(qū)(用來(lái)存放有關(guān)文件的信息)和文件緩沖區(qū)(用來(lái)暫時(shí)存放輸入輸出的數(shù)據(jù))。 所謂“關(guān)閉”是指撤銷(xiāo)文件信息區(qū)和文件緩沖區(qū) 。 在編寫(xiě)程序時(shí),在打開(kāi)文件的同時(shí),一般都指定一個(gè)指針變量指向該文件,也就是建立起指針變量與文件之間的聯(lián)系,這樣就可以通過(guò)該指針變量對(duì)文件進(jìn)行讀寫(xiě)。第13頁(yè),共34頁(yè)。 fopen函數(shù)原型(包含路徑和文件名;兩部分)例:FILE是在stdio.h中定義的結(jié)構(gòu)體類(lèi)型,封裝了文件的

5、相關(guān)信息第14頁(yè),共34頁(yè)。第15頁(yè),共34頁(yè)。第16頁(yè),共34頁(yè)。文件的順序讀寫(xiě) 在順序?qū)憰r(shí),先寫(xiě)入的數(shù)據(jù)存放在文件中前面,后寫(xiě)入的數(shù)據(jù)存放在文件中后面 在順序讀時(shí),先讀文件中前面的數(shù)據(jù),后讀文件中后面的數(shù)據(jù) 對(duì)順序讀寫(xiě)來(lái)說(shuō),對(duì)文件讀寫(xiě)數(shù)據(jù)的順序和數(shù)據(jù)在文件中的物理順序是一致的 順序讀寫(xiě)需要用庫(kù)函數(shù)實(shí)現(xiàn)第17頁(yè),共34頁(yè)。 文件的順序讀寫(xiě)包括:(1)按字符讀寫(xiě)文件 讀寫(xiě)文件中的字符 讀寫(xiě)文件中的字符串(2)按格式讀寫(xiě)文件(3)按數(shù)據(jù)塊讀寫(xiě)文件第18頁(yè),共34頁(yè)。 讀寫(xiě)一個(gè)字符的函數(shù)函數(shù)名調(diào)用形式功能返回值fgetcfgetc(fp)從fp指向的文件讀入一個(gè)字符讀成功,帶回所讀的字符,失敗則返

6、回文件結(jié)束標(biāo)志EOF(即-1)fputcfputc(ch,fp)把字符ch寫(xiě)到文件指針變量fp所指向的文件中寫(xiě)成功,返回值就是輸出的字符;輸出失敗,則返回EOF(即-1)第19頁(yè),共34頁(yè)。第20頁(yè),共34頁(yè)。第21頁(yè),共34頁(yè)。 讀寫(xiě)一個(gè)字符串的函數(shù)函數(shù)名調(diào)用形式功能返回值fgetsfgets(str,n,fp)從fp指向的文件讀入長(zhǎng)度為(n-1)的字符串,存放到字符數(shù)組str中讀成功,返回地址str,失敗則返回空字符NULLfputsfputs(str,fp)str所指向的字符串寫(xiě)到文件指針變量fp所指向的文件中寫(xiě)成功,返回0;否則返回非0值第22頁(yè),共34頁(yè)。第23頁(yè),共34頁(yè)。第24頁(yè)

7、,共34頁(yè)。 按格式讀寫(xiě)文件 一般調(diào)用方式為:fprintf(文件指針,格式字符串,輸出表列);fscanf (文件指針,格式字符串,輸入表列);第25頁(yè),共34頁(yè)。第26頁(yè),共34頁(yè)。第27頁(yè),共34頁(yè)。第28頁(yè),共34頁(yè)。第29頁(yè),共34頁(yè)。第30頁(yè),共34頁(yè)。第31頁(yè),共34頁(yè)。第32頁(yè),共34頁(yè)。 按數(shù)據(jù)塊讀寫(xiě)文件 一般調(diào)用方式為:unsigned int fread (viod *buffer,unsinged int size,unsinged int count,F(xiàn)ILE * fp);功能:從fp所指的文件中讀取數(shù)據(jù)塊并存儲(chǔ)到buffer指向的內(nèi)存中buffer讀入數(shù)據(jù)的起始地址, size數(shù)據(jù)塊大小,最多允許讀取的數(shù)據(jù)塊的個(gè)數(shù),返回值是實(shí)際督導(dǎo)的數(shù)據(jù)開(kāi)個(gè)數(shù)unsigned int fwrite(const viod

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論