第11章 文件_第1頁(yè)
已閱讀1頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第11章文件文件考核知識(shí)點(diǎn)●只要求掌握緩沖文件系統(tǒng)(即高級(jí)磁盤IO系統(tǒng)),非標(biāo)準(zhǔn)緩沖文件系統(tǒng)(即低磁盤IO系統(tǒng))不要求掌握●文件類型指針(FILE類型指針)●文件的打開(kāi)與關(guān)閉●文件的讀寫和文件的定位重要考點(diǎn)對(duì)常用的文件操作函數(shù)的使用會(huì)進(jìn)行文件的讀寫操作了解文件指針的的概念11.1C語(yǔ)言文件的概念1文件的概念在此之前,所有的IO只涉及到鍵盤和顯示器。在運(yùn)行C程序時(shí),我們通過(guò)鍵盤輸入數(shù)據(jù)并借助顯示器把程序的運(yùn)算結(jié)果顯示出來(lái)。但是,計(jì)算機(jī)作為

2、一種先進(jìn)的數(shù)據(jù)處理工具,它所面對(duì)的數(shù)據(jù)信息量十分龐大,僅依賴于鍵盤輸入和顯示器輸出等方式遠(yuǎn)遠(yuǎn)不夠。通常,解決的辦法是將這些數(shù)據(jù)記錄在某些介質(zhì)上,利用這些介質(zhì)的存儲(chǔ)特性,攜帶數(shù)據(jù)或長(zhǎng)久地保存數(shù)據(jù)。這種記錄在外部介質(zhì)上數(shù)據(jù)集合稱為“文件”。在程序運(yùn)行之前,常常需要將一些數(shù)據(jù)(運(yùn)行的最終結(jié)果或中間數(shù)據(jù))輸出到磁盤上保存起來(lái),以后需要時(shí)再?gòu)拇疟P中輸入到計(jì)算機(jī)中,這就需要用到磁盤文件。C程序把文件分為II文件和二進(jìn)制文件。II文件又稱為文本文件,

3、本章我們公討論通過(guò)C程序的輸入輸出所涉及到的、存儲(chǔ)在外部介質(zhì)上的文件,這類文件通常稱為“數(shù)據(jù)文件”,并以磁盤作為存儲(chǔ)介質(zhì)。在程序中,當(dāng)調(diào)用輸入函數(shù)從外部文件中輸入數(shù)據(jù)賦給程序中的變量時(shí),這種操作稱為“輸入”或“讀”;當(dāng)調(diào)用函數(shù)把程序中的變量的值輸出到外部文件中時(shí),這種操作稱為“輸出”或“寫”。在C語(yǔ)言中,文件夾是一個(gè)字節(jié)流或二進(jìn)制流,也就是說(shuō),對(duì)于輸入輸出的數(shù)據(jù)都按“數(shù)據(jù)流”的形式進(jìn)行處理輸出時(shí),系統(tǒng)不添加任何信息輸入時(shí),逐一講入數(shù)據(jù),

4、直到文件結(jié)束標(biāo)志。C程序中的輸入輸出文件,都以數(shù)據(jù)流的形式存儲(chǔ)在介質(zhì)上。文件的輸入輸出方式也稱為“存取方式”。C語(yǔ)言中,文件有兩種存限方式:順序存取和直接存取。順序存取文件的特點(diǎn)是:每當(dāng)“打開(kāi)”文件進(jìn)行讀或?qū)懖僮鲿r(shí),總是從文件的開(kāi)頭開(kāi)始,從頭到尾順序地讀寫。直接存取文件的特點(diǎn)是:可以通過(guò)C語(yǔ)言的庫(kù)函數(shù)去指定開(kāi)始讀(寫)的字節(jié)號(hào),然后直接對(duì)此位置上的數(shù)據(jù)進(jìn)行讀(寫)操作。11.2文件類型指針文件指針當(dāng)使用一個(gè)文件時(shí),系統(tǒng)就為該文件在內(nèi)存中

5、開(kāi)辟一個(gè)區(qū)域來(lái)存放該文件的相關(guān)信息,如該文件的名字、狀態(tài)、位置等,這些信息都被保存到由系統(tǒng)定義的名為FILE的一個(gè)結(jié)構(gòu)體類型的變量中。可以用該結(jié)構(gòu)體類型來(lái)定義文件類型的指針變量,一般形式為:操作用“r”方式時(shí)打開(kāi)的文件必須已經(jīng)存在,以便能向計(jì)算機(jī)輸入數(shù)據(jù)。用“w”方式則新建一個(gè)文件,先向此文件寫數(shù)據(jù),然后可以讀此文件中的數(shù)據(jù)。用“a”方式打開(kāi)文件時(shí),原來(lái)的文件不被刪除,只是在文件尾部添加新的數(shù)據(jù)。⑸“wb”功能與“w”相同,只是在隨后的

6、讀和寫時(shí),可以由位置函數(shù)設(shè)置讀和寫的起始位置。⑹“ab”功能與“a”相同,只是在文件尾部添加新的數(shù)據(jù)之后,可以由位置函數(shù)設(shè)置開(kāi)始讀的起始位置。11.4文件的讀寫文件打開(kāi)之后,就可以對(duì)它進(jìn)行讀寫了。1fputc()函數(shù)和fgetc()函數(shù)(putc()函數(shù)和getc()函數(shù))fputc()函數(shù):該函數(shù)的功能是把一個(gè)字符寫到磁盤文件上去,其一般調(diào)用形式為:fputc(cfp)其中c是要輸出的字符,fp是文件指針。fgetc()函數(shù):該函數(shù)的

7、功甬從指定文件中讀入一個(gè)字符,該文件必須是以讀或讀寫方式打開(kāi)的,其一般調(diào)用形式為:c=fgetc(fp)fp為文件類型指針變量,fgetc()函數(shù)返加一個(gè)字符賦給c2fread()函數(shù)和fwrite()函數(shù)當(dāng)要求一次性讀寫一組數(shù)據(jù)時(shí),例如,一個(gè)實(shí)數(shù)或一個(gè)結(jié)構(gòu)體變量的值,就可以使用fread()函數(shù)和fwrite()函數(shù),它們的一般調(diào)用形式為:fread(buffersizecountfp)fwrite(buffersizefp)其中,b

8、uffer代表的是一個(gè)指針變量;size代表的是要讀寫的字節(jié)數(shù);count用來(lái)指定每讀寫一次,輸入或輸出數(shù)據(jù)塊的個(gè)數(shù)(每個(gè)數(shù)據(jù)塊具有size個(gè)字節(jié));fp是文件類型指針。3fscanf()函數(shù)和fprintf()函數(shù)fscanf()函數(shù)和fprintf()函數(shù)都是格式化的讀寫函數(shù),與scanf()函數(shù)和printf()函數(shù)作用相似,但fscanf()函數(shù)和fprintf()函數(shù)讀寫對(duì)象是磁盤上的數(shù)據(jù)。它們的一般形式如下:fscanf(文

9、件指針,格式字符串,輸入列表);fprintf(文件指針,格式字符串,輸出列表);4fgets()函數(shù)fgets()函數(shù)用來(lái)從文件中讀入字符串,調(diào)用形式如下:fgets(strnfp)其中str是存放字符串的起始地址,n是一個(gè)整型變量,fp是文件指針。該函數(shù)的功能是從fp指向的文件中讀入n1個(gè)字符放入以str為起始的地址單元內(nèi)的。如果在讀完n1個(gè)字符之前讀到換行符或EOF,則結(jié)束本次操作。5fputs()函數(shù)fputs()函數(shù)是用來(lái)把字

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論