C語(yǔ)言程序設(shè)計(jì) 教學(xué)課件 作者 劉明才 第10章 文件.ppt

C語(yǔ)言程序設(shè)計(jì) 教學(xué)課件 作者 劉明才 第10章 文件.ppt

ID:50083425

大?。?83.50 KB

頁(yè)數(shù):28頁(yè)

時(shí)間:2020-03-08

C語(yǔ)言程序設(shè)計(jì) 教學(xué)課件 作者 劉明才 第10章 文件.ppt_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì) 教學(xué)課件 作者 劉明才 第10章 文件.ppt_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì) 教學(xué)課件 作者 劉明才 第10章 文件.ppt_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì) 教學(xué)課件 作者 劉明才 第10章 文件.ppt_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì) 教學(xué)課件 作者 劉明才 第10章 文件.ppt_第5頁(yè)
資源描述:

《C語(yǔ)言程序設(shè)計(jì) 教學(xué)課件 作者 劉明才 第10章 文件.ppt》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)

1、第10章文件文件的基本概念文件的打開(kāi)與關(guān)閉文件的讀寫(xiě)文件的隨機(jī)讀寫(xiě)第頁(yè)共28頁(yè)10.1文件的基本概念在程序中,當(dāng)調(diào)用輸入函數(shù)從外部文件中輸入數(shù)據(jù)賦給程序中的變量時(shí),這種操作稱(chēng)為“輸入”或“讀”;當(dāng)調(diào)用輸出函數(shù)將程序中變量的值輸出到外部文件中時(shí),這種操作稱(chēng)為“輸出”或“寫(xiě)”。第頁(yè)共28頁(yè)C語(yǔ)言將文件看作是字符(字節(jié))的序列,即由一個(gè)一個(gè)的字符(字節(jié))的數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組織形式,可將文件分為文本(Text)文件和二進(jìn)制文件。文本文件又稱(chēng)ASCII文件,它的每個(gè)字節(jié)存放一個(gè)ASCII代碼,代表一個(gè)字符。二進(jìn)制文件是將內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲(chǔ)形式原樣輸出到磁盤(pán)上存放。例如,

2、一個(gè)整數(shù)10000,在內(nèi)存中占兩個(gè)字節(jié),以二進(jìn)制補(bǔ)碼形式存放,這兩個(gè)字節(jié)是00100111和00010000。如果將整數(shù)10000保存在二進(jìn)制文件中,則存放的就是這兩個(gè)字節(jié)的數(shù)據(jù)(二進(jìn)制形式)。第頁(yè)共28頁(yè)對(duì)于文本文件,它將10000看作由5個(gè)字符組成的字符序列,分別存放字符'1'、'0'、'0'、'0'、'0'的ASCII代碼,占5個(gè)字節(jié)。由此可見(jiàn),在文本文件中,一個(gè)字節(jié)代表一個(gè)字符,便于對(duì)字符進(jìn)行處理,閱讀方便,比較直觀。但一般占存儲(chǔ)空間較大,而且在輸入/輸出時(shí)需要花費(fèi)轉(zhuǎn)換時(shí)間。二進(jìn)制文件一般占較小的存儲(chǔ)空間,而且輸入/輸出時(shí)不用轉(zhuǎn)換,但一個(gè)字節(jié)一般并不對(duì)應(yīng)一個(gè)字符,單個(gè)字節(jié)

3、的數(shù)據(jù)往往沒(méi)有意義。第頁(yè)共28頁(yè)10.2文件的打開(kāi)與關(guān)閉文件類(lèi)型指針文件的打開(kāi)文件的關(guān)閉第頁(yè)共28頁(yè)10.2.1文件類(lèi)型指針當(dāng)使用一個(gè)文件時(shí),系統(tǒng)就為該文件在內(nèi)存中開(kāi)辟了一個(gè)區(qū)域來(lái)存放該文件的相關(guān)信息,如文件的名字、狀態(tài)、位置等,這些信息被保存在一個(gè)結(jié)構(gòu)體變量中。該結(jié)構(gòu)體類(lèi)型是由系統(tǒng)定義的,取名為FILE。可以用該結(jié)構(gòu)體類(lèi)型來(lái)定義文件類(lèi)型的指針變量,例如:FILE*fp;fp是一個(gè)指向FILE類(lèi)型結(jié)構(gòu)體的指針變量??梢允褂胒p指向某個(gè)文件的結(jié)構(gòu)體變量,從而通過(guò)該結(jié)構(gòu)體變量中的文件信息能夠訪(fǎng)問(wèn)該文件。第頁(yè)共28頁(yè)10.2.2文件的打開(kāi)文件只有先打開(kāi),然后才能使用,使用后應(yīng)及時(shí)關(guān)閉,

4、以保證數(shù)據(jù)的正確存儲(chǔ)。打開(kāi)一個(gè)文件要用函數(shù)fopen實(shí)現(xiàn)。函數(shù)原型:FILE*fopen(char*filename,char*mode);調(diào)用格式:fp=fopen(文件名,使用文件方式);例如:fp=fopen("a1","r");它表示要打開(kāi)文件名為a1的文件,使用文件方式為“讀”(r代表read,即讀),fopen函數(shù)帶回指向a1文件的指針并賦給fp,這樣fp就指向了a1文件。文件的使用方式,如表所示。第頁(yè)共28頁(yè)文件的使用方式第頁(yè)共28頁(yè)10.2.3文件的關(guān)閉當(dāng)被打開(kāi)的文件使用完畢后應(yīng)將它關(guān)閉,以防止它被誤用。這里關(guān)閉文件指的是使文件指針變量不指向該文件,也就是文件指針

5、變量與文件“脫鉤”,此后不能再通過(guò)該指針對(duì)原來(lái)與其相聯(lián)系的文件進(jìn)行讀寫(xiě)操作。關(guān)閉文件使用fclose函數(shù)。函數(shù)原型:intfclose(FILE*fp);調(diào)用格式:fclose(文件指針);例如:fclose(fp);其中fp是一個(gè)調(diào)用fopen函數(shù)時(shí)所返回的文件類(lèi)型指針。當(dāng)文件關(guān)閉成功時(shí),fclose函數(shù)返回值為0,否則返回非零值。第頁(yè)共28頁(yè)10.3文件的讀寫(xiě)字符讀寫(xiě)函數(shù)fgetc和fputc字符串讀寫(xiě)函數(shù)fgets和fputs數(shù)據(jù)塊讀寫(xiě)函數(shù)fread和fwrite格式化讀寫(xiě)函數(shù)fscanf和fprintf第頁(yè)共28頁(yè)10.3.1字符讀寫(xiě)函數(shù)fgetc和fputc字符輸入函數(shù)

6、fgetc函數(shù)原型:intfgetc(FILE*fp);調(diào)用格式:字符變量=fgetc(文件指針);函數(shù)功能:從指定的文件中讀一個(gè)字符,該文件必須是以讀或讀寫(xiě)方式打開(kāi)的。函數(shù)的返回值為該字符的ASCII碼,若讀到文件結(jié)束符,則函數(shù)返回一個(gè)文件結(jié)束標(biāo)志EOF(EOF是在stdio.h文件中定義的符號(hào)常量,值為-1)。例如:ch=fgetc(fp);其作用是從fp所指向的文件中讀取一個(gè)字符并送入ch中。第頁(yè)共28頁(yè)字符輸出函數(shù)fputc函數(shù)原型:intfputc(charch,FILE*fp);調(diào)用格式:fputc(字符,文件指針);函數(shù)功能:將字符寫(xiě)入到fp指向的文件中。寫(xiě)入成功,

7、函數(shù)返回該字符的ASCII碼,否則,返回EOF。其中,待寫(xiě)入的字符可以是字符常量或變量,例如:fputc('a',fp);其作用是將字符a寫(xiě)入fp所指向的文件中。第頁(yè)共28頁(yè)文件結(jié)束檢測(cè)函數(shù)feof函數(shù)原型:intfeof(FILE*fp);調(diào)用格式:feof(文件指針);函數(shù)功能:判斷文件是否處于文件結(jié)束位置,如文件結(jié)束,則返回值為非0,否則為0。第頁(yè)共28頁(yè)位置指針復(fù)位函數(shù)rewind函數(shù)原型:voidrewind(FILE*fp);調(diào)用格式:rewind(文件指針);函數(shù)功

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。