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

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

ID:50083425

大?。?83.50 KB

頁數(shù):28頁

時間:2020-03-08

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

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

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

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

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

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

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

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

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

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

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

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