版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 C語言程序設(shè)計(jì),第 10 講,第10章文件,掌握對(duì)文件指針的定義方法。 掌握文件打開和關(guān)閉的操作方法。 掌握常用文件輸入輸出函數(shù)的用法。 掌握文件讀寫函數(shù)的用法。,目標(biāo)要求,第10章文件,文件概述 文件指針 文件的打開 文件的關(guān)閉 文件的讀寫 其他一些函數(shù) 小結(jié) 課后作業(yè),講課提綱,第10章文件,C語言數(shù)據(jù)文件存貯在磁盤上有兩種形式: ASCII碼文件:按ASCII碼存貯的文件。 二進(jìn)制文件:按二進(jìn)制碼存貯的文件。 C語言中,有兩種對(duì)文件的存取方式: 順序存取。 直接存取。 順序存取文件的特點(diǎn)是:每當(dāng)“打開”這類文件進(jìn)行讀或?qū)懖僮鲿r(shí),總是從文件的開頭開始,從頭到尾順序地讀或?qū)?,也就是說當(dāng)順序
2、存取文件時(shí),如果要讀第n個(gè)字節(jié),先要讀取前n-1個(gè)字節(jié),而不能一開始就讀到第n個(gè)字節(jié);同理要寫第n個(gè)字節(jié)時(shí),先要寫前n-1個(gè)字節(jié)。 直接存取文件又稱隨機(jī)存取文件,其特點(diǎn)是:可以通過調(diào)用C語言的庫(kù)函數(shù)去指定開始讀(寫)的字節(jié)號(hào),然后直接對(duì)此位置上的數(shù)據(jù)進(jìn)行讀(寫)操作。,10.1 文件概述,第10章文件,定義 文件指針變量的定義格式如下: FILE *指針變量名; 使用說明 定義文件指針變量時(shí),必須使用“FILE”類型,而且必須是大寫。 “FILE”是1個(gè)保存文件有關(guān)信息(如文件名、文件狀態(tài)等)的結(jié)構(gòu)體變量。 應(yīng)用舉例 定義兩個(gè)文件指針變量: FILE *fp1,fp2;,10.2 文件指針,第
3、10章文件,fopen()函數(shù)的使用形式。 文件指針變量=fopen(文件名,文件使用方式); 幾點(diǎn)說明: fopen()函數(shù)調(diào)用要求有兩個(gè)字符串作為參數(shù)。第1個(gè)字符串中包含了進(jìn)行讀、寫操作的文件名,用來指定所要打開的文件;第2個(gè)字符串中指定了文件的使用方式,用戶可通過這個(gè)參數(shù)來指定對(duì)文件的使用意圖。 第2個(gè)參數(shù)要用雙引號(hào)引起來,若待打開的文件已經(jīng)存在,“文件名”也要用雙引號(hào)引起來。若“文件名”是通過數(shù)組表達(dá)出來的,則不用引號(hào)。 若以上函數(shù)調(diào)用成功,函數(shù)返回1個(gè)FILE類型的指針,賦給文件指針變量,從而把指針與文件聯(lián)系起來,也就是說,在此調(diào)用之后,指針就指向了文件。,10.3 文件的打開,第1
4、0章文件,無論是哪種使用方式,當(dāng)打開文件時(shí)出現(xiàn)了錯(cuò)誤,fopen()函數(shù)將返回NULL值。為了保證在程序中使用正確打開的文件,建議用以下的程序段,當(dāng)在打開文件時(shí)發(fā)生錯(cuò)誤,要使程序停止運(yùn)行: if(fp=fopen(“file_a”,“r”)=NULL) printf(“Cannot open this file!n”); exit(0); ,10.3 文件的打開,第10章文件,最常用的文件使用方式及其含義。 “r”:打開1個(gè)ASCII碼文本文件(只讀)。當(dāng)指定這種方式時(shí),對(duì)打開的文件只能進(jìn)行“讀”操作。若指定的文件不存在,則會(huì)出錯(cuò);另外如果企圖去讀1個(gè)不允許讀的文件時(shí),也會(huì)出錯(cuò)。 “rb”:打
5、開1個(gè)二進(jìn)制文件(只讀)。其余功能與“r”相同。 “w”:創(chuàng)建1個(gè)ASCII文件(只寫)。此時(shí),如果指定的文件不存在,系統(tǒng)將在fopen()函數(shù)的調(diào)用中用指定的文件名建立1個(gè)新文件;如果指定的文件已存在,則將從文件的起始位置開始寫入數(shù)據(jù),文件中原有的內(nèi)容將全部消失。 “wb”:創(chuàng)建1個(gè)二進(jìn)制文件(只寫),其余功能與“w”相同。,10.3 文件的打開,第10章文件,最常用的文件使用方式及其含義。 “a”:打開一個(gè)ASCII碼文件(添加)。這時(shí),如果指定的文件不存在,系統(tǒng)將在fopen()的調(diào)用中用指定的文件名建立1個(gè)新文件;如果指定的文件已存在,則文件中原有的內(nèi)容將保存,新的數(shù)據(jù)寫在原有內(nèi)容之后
6、。 “ab”:創(chuàng)建1個(gè)二進(jìn)制文件(添加)。其余功能與“a”相同。 “r+”:打開1個(gè)ASCII碼文本文件(讀/寫)。用這種方式時(shí),指定的文件應(yīng)當(dāng)已經(jīng)存在,既可以對(duì)該文件進(jìn)行讀,也可對(duì)該文件進(jìn)行寫,在讀和寫操作之間不必關(guān)閉文件。對(duì)于ASCII碼文件來說,讀和寫總是從文件的起始位置開始。在寫新的數(shù)據(jù)時(shí),只覆蓋新數(shù)據(jù)所占的空間,其后的老數(shù)據(jù)并不丟失。,10.3 文件的打開,第10章文件,最常用的文件使用方式及其含義。 “rb+”:打開1個(gè)二進(jìn)制文件(讀/寫)。功能與“r+”相同。只是在讀和寫時(shí),可以由位置函數(shù)設(shè)置讀和寫的起始位置,即不一定從文件的起始位置開始讀和寫。 “w+”:創(chuàng)建1個(gè)ASCII碼文
7、件(讀/寫)。首先建立1個(gè)新文件,進(jìn)行寫操作,隨后可以從頭開始讀。如果指定的文件已存在,則原有的內(nèi)容將全部消失。 “wb”:功能與“w+”相同,只是在隨后的讀和寫時(shí),可以由位置函數(shù)設(shè)置讀和寫的起始位置。 “a+”:功能與“a”相同,只是在文件尾部添加新的數(shù)據(jù)之后,可以從頭開始讀。 “ab+”:功能與“a+”相同,只是在文件尾部添加新的數(shù)據(jù)之后,可以由位置函數(shù)設(shè)置開始讀的起始位置。,10.3 文件的打開,第10章文件,使用格式。 fclose()函數(shù)的使用格式如下: fclose(文件指針變量); 說明: 關(guān)閉文件,就是使文件指針變量不再指向該文件,同時(shí)將尚未寫入磁盤的數(shù)據(jù)(存在內(nèi)容緩沖區(qū)中的數(shù)
8、據(jù))寫入磁盤,從而保證寫入文件的數(shù)據(jù)完整。 C語言流式文件,在打開時(shí)先建立1個(gè)內(nèi)存文件緩沖區(qū),然后進(jìn)行讀寫數(shù)據(jù)。數(shù)據(jù)的讀寫是通過“塊方式”對(duì)磁盤進(jìn)行工作的,當(dāng)寫數(shù)據(jù)時(shí),寫滿緩沖區(qū)后才向磁盤寫1次。因此,若在緩沖區(qū)不滿時(shí)結(jié)束操作,文件中的數(shù)據(jù)可能不全,但在文件關(guān)閉時(shí),不管緩沖區(qū)是否已滿,都要向磁盤文件中寫1次,這樣就能保證數(shù)據(jù)不丟失。所以,為了避免數(shù)據(jù)的丟失,應(yīng)該在文件操作完畢及時(shí)進(jìn)行關(guān)閉。,10.4 文件的關(guān)閉,第10章文件,字符的輸出可用函數(shù)putc()或fputc()。 使用格式。 函數(shù)putc()或fputc()兩者的使用格式一樣,如下: putc(ch,文件指針變量); 說明: “ch
9、”是待輸出的某個(gè)字符,它既可為變量,又可為常量?!拔募羔樧兞俊笔侵赶蛞獙⒆址麑懙轿募奈募羔槨U麄€(gè)語句的功能是將字符寫到文件指針變量所指向的文件中去。,10.5 文件的讀寫,第10章文件,字符的輸入可用函數(shù)getc()和fgetc()。 使用格式 函數(shù)getc()或fgetc()兩者的使用格式一樣,均為: ch=getc(文件指針變量); 說明: “ch”為1個(gè)字符變量,該語句的功能是從文件指針變量所指向的文件中讀入1個(gè)字符,并把它賦給字符變量。,10.5 文件的讀寫,第10章文件,從文件中讀字符串用fgets()函數(shù)。 使用格式。 fgets(字符串變量,字符串長(zhǎng)度,文件指針變量); 說
10、明: 該函數(shù)的功能是從“文件指針變量”所指向的文件中讀出一行以n或EOF為結(jié)尾的字符串,并將其賦給字符串變量。如果文件中字符串長(zhǎng)度大于設(shè)定的長(zhǎng)度n,則只讀前n-1個(gè)字符,讀出的字符串以轉(zhuǎn)義字符0結(jié)尾并存放到字符串變量中。,10.5 文件的讀寫,第10章文件,向文件中寫字符串用fputs()函數(shù)。 使用格式。 fputs()函數(shù)的使用格式為: fputs(字符串變量,文件指針變量); 說明: 該函數(shù)的功能是把字符串變量中的字符串寫到文件指針變量所指向的文件中去,并輸出1個(gè)換行符“n”。,10.5 文件的讀寫,第10章文件,按格式輸入。 按格式輸入用fscanf()函數(shù),其使用格式為: fscan
11、f(文件指針變量,格式控制符,參數(shù)表列); 按格式輸出。 按格式輸出用fprintf()函數(shù),其使用格式為: fprintf(文件指針變量,格式控制符,參數(shù)表列); 判斷文件結(jié)束函數(shù)。 判斷文件結(jié)束用feof()函數(shù),其使用格式為: feof(文件指針變量);,10.6 其它一些函數(shù),第10章文件,改變文件的位置指針。 改變文件的位置指針用fseek()函數(shù),其格式為: fseek(文件指針變量,位移量,起始點(diǎn)); 隨機(jī)文件的讀寫。 隨機(jī)文件的讀寫用以下兩個(gè)函數(shù),其格式及功能如下: freed(ptr,size,n,fp); 其功能是從指定的文件fp中讀n個(gè)數(shù)據(jù)塊到prt所指向的內(nèi)存地址中去,數(shù)據(jù)塊的長(zhǎng)度為size個(gè)字節(jié)。 fwrite(ptr,size,n,fp); 其功能是從prt指針?biāo)赶虻膬?nèi)存地址起,讀n個(gè)長(zhǎng)度為size個(gè)字節(jié)的數(shù)據(jù)塊,并將其寫到指定的文件中去。,10.6 其它一些函數(shù),第10章文件,本章主要介紹了以下知識(shí): C語言文件是流式文件,有兩種文件類型和兩種讀取方式。 在C語言中,對(duì)文件的操作都是通過標(biāo)準(zhǔn)函數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)黃腐酸肥料行業(yè)需求狀況與十三五規(guī)劃研究報(bào)告
- 2025至2030年中國(guó)錫青管套數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)轉(zhuǎn)爐/電爐用供氣元件數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 集裝箱酒店裝修貸款協(xié)議
- 2025至2030年中國(guó)直線式齒輪減速電機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)數(shù)碼相機(jī)模具數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)室內(nèi)活動(dòng)軟體蹦床數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 甜品店裝修安全協(xié)議
- 液態(tài)牛奶罐車?yán)滏溑渌蛥f(xié)議
- 2025至2031年中國(guó)肥鴨飼料行業(yè)投資前景及策略咨詢研究報(bào)告
- 黑色素的合成與美白產(chǎn)品的研究進(jìn)展
- 建筑史智慧樹知到期末考試答案2024年
- 金蓉顆粒-臨床用藥解讀
- 社區(qū)健康服務(wù)與管理教案
- 2023-2024年家政服務(wù)員職業(yè)技能培訓(xùn)考試題庫(kù)(含答案)
- 2023年(中級(jí))電工職業(yè)技能鑒定考試題庫(kù)(必刷500題)
- 藏歷新年文化活動(dòng)的工作方案
- 果酒釀造完整
- 第4章-理想氣體的熱力過程
- 生涯發(fā)展展示
- 手術(shù)室應(yīng)對(duì)突發(fā)事件、批量傷員應(yīng)急預(yù)案及處理流程
評(píng)論
0/150
提交評(píng)論