單元11 文件讀寫(xiě)技術(shù)_第1頁(yè)
單元11 文件讀寫(xiě)技術(shù)_第2頁(yè)
單元11 文件讀寫(xiě)技術(shù)_第3頁(yè)
單元11 文件讀寫(xiě)技術(shù)_第4頁(yè)
單元11 文件讀寫(xiě)技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩34頁(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)介

第11單元文件讀寫(xiě)技術(shù)Contents目錄文件的打開(kāi)與關(guān)閉一字符的讀寫(xiě)二數(shù)據(jù)塊的讀寫(xiě)四三字符串的讀寫(xiě)文件定位四三格式化讀寫(xiě)引

文件是指駐留在外部介質(zhì)(如磁盤(pán))上的一組相關(guān)數(shù)據(jù)的有序集合。這個(gè)數(shù)據(jù)集有一個(gè)名稱,叫做文件名。

識(shí)認(rèn)

文件概念

類(lèi)

源文件、目標(biāo)文件、數(shù)據(jù)文件等。按文件的內(nèi)容卡片文件、紙帶文件、磁帶文件、磁盤(pán)文件等。按文件依附的介質(zhì)

字符文件和二進(jìn)制文件。按數(shù)據(jù)的組織形式

文件概念引引

一個(gè)指針變量指向一個(gè)文件,這個(gè)指針?lè)Q為文件指針。

文件進(jìn)行的各種操作就是通過(guò)文件指針完成的。文件指針的一般格式:FILE*指針變量標(biāo)識(shí)符;

文件概念注意:FILE應(yīng)該為大寫(xiě)一文件的打開(kāi)與關(guān)閉PART文件的打開(kāi)與關(guān)閉一

件文

開(kāi)的

打開(kāi)文件的一般形式:

文件指針=fopen(文件名,文件使用方式);指被打開(kāi)的文件

文件的類(lèi)型和操作要求文件的打開(kāi)與關(guān)閉一

件文

開(kāi)的

例如:FILE*f1;f1=(“file1.txt”,“r”);【功能】在當(dāng)前目錄下打開(kāi)文件file1,只允許進(jìn)行“讀”操作,并使f1指向該文件。文件的打開(kāi)與關(guān)閉一

件文

方使

文件使用方式符號(hào)含義r打開(kāi)一個(gè)只讀的文本文件w打開(kāi)或創(chuàng)建一個(gè)新的只寫(xiě)的文本文件a打開(kāi)一個(gè)文本文件在尾部追加rb打開(kāi)一個(gè)只讀的二進(jìn)制文件wb打開(kāi)或創(chuàng)建一個(gè)新的只寫(xiě)的二進(jìn)制文件ab對(duì)二進(jìn)制文件追加r+打開(kāi)一個(gè)可讀/寫(xiě)的文本文件w+打開(kāi)或創(chuàng)建一個(gè)新的可讀/寫(xiě)的文本文件a+打開(kāi)一個(gè)可讀/寫(xiě)的文本文件rb+打開(kāi)一個(gè)可讀/寫(xiě)的二進(jìn)制文件wb+打開(kāi)或創(chuàng)建一個(gè)新的可讀/寫(xiě)的二進(jìn)制文件ab+打開(kāi)一個(gè)可讀/寫(xiě)的二進(jìn)制文件文件的打開(kāi)與關(guān)閉一

項(xiàng)意

打開(kāi)文件的幾點(diǎn)注意事項(xiàng):在打開(kāi)一個(gè)文件時(shí),如果出錯(cuò),fopen將返回一個(gè)空指針值NULL。文件的打開(kāi)與關(guān)閉一

項(xiàng)意

打開(kāi)文件的幾點(diǎn)注意事項(xiàng):用“r”打開(kāi)一個(gè)文件時(shí),該文件必須已經(jīng)存在,且只能對(duì)該文件讀。用“w”打開(kāi)的文件只能向該文件寫(xiě)入。文件的打開(kāi)與關(guān)閉一

項(xiàng)意

打開(kāi)文件的幾點(diǎn)注意事項(xiàng):若要向一個(gè)已存在的文件追加新的信息,只能用“a”方式打開(kāi)文件。但此時(shí)該文件必須是存在的,否則將會(huì)出錯(cuò)。文件的打開(kāi)與關(guān)閉一

項(xiàng)意

打開(kāi)文件的幾點(diǎn)注意事項(xiàng):把一個(gè)文本文件讀入內(nèi)存時(shí),要將ASCII碼轉(zhuǎn)換成二進(jìn)制碼,而把文件以文本方式寫(xiě)入磁盤(pán)時(shí),也要把ASCII碼轉(zhuǎn)換成二進(jìn)制碼,因此文本文件的讀寫(xiě)要花費(fèi)較多的轉(zhuǎn)換時(shí)間。對(duì)二進(jìn)制文件的讀寫(xiě)不存在這種轉(zhuǎn)換。文件的打開(kāi)與關(guān)閉一

件文

關(guān)

閉的

關(guān)閉文件的一般形式:fclose(文件指針變量);

【功能】關(guān)閉指針?biāo)傅奈募?,同時(shí)自動(dòng)釋放分配給文件的內(nèi)存緩沖區(qū)。

二字符的讀寫(xiě)PART字符的讀寫(xiě)二四

函種數(shù)

字符讀寫(xiě)函數(shù):fgetc和fputc數(shù)據(jù)塊讀寫(xiě)函數(shù):fread和fwrite字符串讀寫(xiě)函數(shù):fgets和fputs格式化讀寫(xiě)函數(shù):fscanf和fprintf

文件的順序讀寫(xiě)包括以下4種函數(shù):字符的讀寫(xiě)二四

函種數(shù)

字符讀取函數(shù)fgetc格式:fgetc(文件指針fp);功能:從文件指針fp所指的文件的當(dāng)前位

置讀取單個(gè)字符。字符的讀寫(xiě)三四

函種數(shù)

【例11-1】讀取文件f1.txt,在屏幕上輸出。程序分析文件指針fp,以讀文本文件方式打開(kāi)文件f1.txt,并使fp指向該文件。用其控制文件的輸出。字符的讀寫(xiě)三四

函種數(shù)

字符寫(xiě)入函數(shù)fputc格式:fputc(字符量ch,文件指針fp);功能:將ch表示的字符寫(xiě)入fp所指向的文

件的當(dāng)前位置。字符的讀寫(xiě)三四

函種數(shù)

輸入一行字符,將它存入文件,再讀

取文件內(nèi)容并顯示出來(lái)。程序分析程序中首先以讀寫(xiě)文本文件方式打開(kāi)文件input.txt。在提示輸入一串字符串后,從鍵盤(pán)讀入一個(gè)字符串后進(jìn)入循環(huán),當(dāng)讀入字符不為回車(chē)符時(shí),文件內(nèi)的位置指針會(huì)向后移動(dòng)一個(gè)字節(jié),寫(xiě)入完畢,指針已指向文件末尾。三字符串的讀寫(xiě)PART字符串的讀寫(xiě)三四

函種數(shù)

字符串讀取函數(shù)fgets格式:fgets(字符數(shù)組名st,n,文件指針fp);功能:從fp所指向的函數(shù)的當(dāng)前位置讀取n-1個(gè)

字符,在讀入的最后一個(gè)字符后加上串

結(jié)束標(biāo)志“\0”,組成字符串后存入st

指定的內(nèi)存區(qū)。字符串的讀寫(xiě)三四

函種數(shù)

讀取文件input中的一個(gè)包含6個(gè)字符的字符串。程序分析程序中首先定義一個(gè)字符數(shù)組st,共6個(gè)字節(jié),以讀文本文件方式打開(kāi)文件input.txt,從中讀出5個(gè)字符送入str數(shù)組,在數(shù)組最后一個(gè)單元內(nèi)加上“\0”,然后再屏幕上輸出st數(shù)組。字符串的讀寫(xiě)三四

函種數(shù)

字符串寫(xiě)入函數(shù)fputs格式:fputs(字符串st,文件指針fp);功能:將st處存放的一個(gè)字符串,寫(xiě)入fp所指向

的文本文件中。寫(xiě)入文件時(shí),字符串結(jié)束

標(biāo)志并不寫(xiě)入文件。

字符串的讀寫(xiě)三四

函種數(shù)

【例11-4】在【例11-2】建立的文件input.txt

中追加一個(gè)字符串。程序分析本例要求在input.txt文件末尾追加字符串,因此,在程序中用追加讀寫(xiě)文本文件的方式打開(kāi)文件input.txt。然后輸入字符串,并用fputs函數(shù)把該字符串寫(xiě)入文件st。四數(shù)據(jù)塊的讀寫(xiě)PART數(shù)據(jù)塊的讀寫(xiě)四四

函種數(shù)

數(shù)據(jù)塊讀取函數(shù)fread格式:fread(buffer,size,n,fp);功能:從fp所指向的文件中讀取n塊字節(jié)數(shù)為size的數(shù)據(jù)塊,將這些數(shù)據(jù)塊存入buffer

指定的內(nèi)存區(qū)。

數(shù)據(jù)塊的讀寫(xiě)四四

函種數(shù)

數(shù)據(jù)塊寫(xiě)入函數(shù)fwrite格式:fwrite(buffer,size,n,fp);

功能:將buffer指向的內(nèi)存區(qū)域的n塊字節(jié)數(shù)為size的數(shù)據(jù)塊寫(xiě)入fp所指向的文件中。五格式化的讀寫(xiě)PART格式化的讀寫(xiě)五四

函種數(shù)

格式化數(shù)據(jù)讀取函數(shù)fscanf格式:fscanf(文件指針fp,格式字符串,輸入表列);

功能:按照格式字符串的指定格式,從fp指向的

文件中讀取數(shù)據(jù)存放在輸入表列中變量所

對(duì)應(yīng)的內(nèi)存地址中。格式化的讀寫(xiě)五四

函種數(shù)

格式化數(shù)據(jù)寫(xiě)入函數(shù)fprintf格式:fprintf(文件指針fp,格式字符串,輸出表列);

功能:按照格式字符串的指定格式,將輸出表列

中對(duì)應(yīng)的地址的數(shù)據(jù)寫(xiě)入fp指向的文件中。六文件的定位PARTrewind函數(shù)調(diào)用格式:rewind(文件指針fp);作用:

使位置指針指向文件的開(kāi)頭,該函數(shù)沒(méi)有返回值。

fseek函數(shù)調(diào)用格式:fseek(文件指針fp,位移量,起始點(diǎn));

作用:

使位置指針指向文件的開(kāi)頭,該函數(shù)沒(méi)有返回值。

一、文件的定位函數(shù)隨機(jī)文件讀寫(xiě)起始點(diǎn)表示方法一、文件的定位函數(shù)起始點(diǎn)表示符號(hào)數(shù)字表示文件首SEEK-SET0當(dāng)前位置SEEK-CUR1文件末尾SEEK-END2二、文件檢測(cè)函數(shù)文件結(jié)束檢測(cè)函數(shù)feof測(cè)試當(dāng)前位置函數(shù)ftell讀寫(xiě)文件出錯(cuò)檢測(cè)函數(shù)ferror1文件結(jié)束檢測(cè)函數(shù)feof調(diào)用格式:feof(文件指針fp);功能:判斷文件是否處于文件結(jié)束位置,如文件結(jié)

束,則返回值為1,否則為0。二、文件檢測(cè)函數(shù)2測(cè)試當(dāng)前位置函數(shù)ftell調(diào)用格式:ftell(文件指針fp)

溫馨提示

  • 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論