12_文件.ppt_第1頁
12_文件.ppt_第2頁
12_文件.ppt_第3頁
12_文件.ppt_第4頁
12_文件.ppt_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第1,13章文件概要文件的使用文件的打開和關(guān)閉文件的讀寫文件的定位錯誤的檢測,第2,文件:外部媒體存儲的數(shù)據(jù)的集合,是執(zhí)行操作系統(tǒng)數(shù)據(jù)管理的單位。 可以通過喀嚦聲文件名將其網(wǎng)站數(shù)據(jù)庫到文件中。 DOS使用8.3的文件名格式,Windows通訊端口長文件名,文件名最多255個字符。13.1文件摘要、3、文件分類:以及不同的計(jì)程儀方案,它們可以網(wǎng)站數(shù)據(jù)庫到同一數(shù)據(jù)文件中的數(shù)據(jù)中,并長期保存計(jì)程儀方案執(zhí)行的中間數(shù)據(jù)或結(jié)果數(shù)據(jù),以實(shí)現(xiàn)使用文件的目的4,例: int型數(shù)10000文本文件的特征3360內(nèi)存量大,速度慢,可以直接顯示,對文字的操作容易,二進(jìn)制文件的特征3360內(nèi)存量小,速度快,不能直接顯示

2、,容易保存中間結(jié)果對文件的操作包括讀取操作和寫入操作。 的雙曲馀弦值。 習(xí)語言情況下,頭文件stdio.h存儲一個聲明,該聲明沒有投入產(chǎn)出語句,并且對文件的讀寫在庫函數(shù)中實(shí)現(xiàn)庫函數(shù)。 習(xí)語言情況下,會為每個使用的文件打開內(nèi)存區(qū)域,保存文件的信息(文件名、文件狀態(tài)、當(dāng)前位置等)。 習(xí)語言將這些個信息存儲在名為FILE的結(jié)構(gòu)變量中,如stdio.h所定義。 13.2文件的使用,6,文件的定義如下:類型基礎(chǔ)短級別; 緩沖區(qū)已滿或空閑的程度* /未標(biāo)識的標(biāo)志; /*文件狀態(tài)標(biāo)志*/char fd; /*文件描述符* /未指定的卡片保持; /*沒有緩沖區(qū)就不讀字符*/short bsize; 緩沖區(qū)大小

3、* /未指定char *緩沖區(qū); /*數(shù)據(jù)緩沖區(qū)的位置* /不符合條件的char * curp; /*指針,當(dāng)前指針* /未標(biāo)識的is temp; /*臨時文件、指示器* /短令牌; /*有效性檢查用*/FILE; 13.2文件的使用,7,只定義一個FILE類型的指針變量,在此指針變量中調(diào)用文件操作函數(shù)來操作指定文件。 文件操作步驟:打開文件后,系統(tǒng)自動創(chuàng)建文件結(jié)構(gòu),返回該指針,從該指針獲取文件信息,并將其網(wǎng)站數(shù)據(jù)庫到文件中。 文件的讀取/寫入。 關(guān)閉文件時,將釋放該文件結(jié)構(gòu)。 文件* FP;13.2文件的使用、注意:結(jié)構(gòu)類型名“FILE”必須大寫。 8、文件打開(fopen函數(shù))、文件* F

4、P; fp=fopen (文件名、使用文件方式); 例如,fp=fopen(A1,r ); 這意味著要打開名為A1的文件,需要導(dǎo)入文件方法,而fp指向A1文件。 指向編譯系統(tǒng)的3個信息: 1必須打開的文件名2文件的使用方法3指定指向打開文件的指針變量。 13.3文件的打開和關(guān)閉,9,函數(shù)值:如果成功打開,則返回打開文件的文件信息區(qū)域的開頭地址。如果打開失敗,則返回在標(biāo)頭文件stdio.h中定義了值的空指針。 if(fp=fopen (文件名,使用文件方式) )=null ) printf (cannotopenthisfilen ); exit(0); 關(guān)于exit ()函數(shù)的使用方法: vo

5、id exit (普拉姆狀態(tài)值); 功能:關(guān)閉所有打開的文件,結(jié)束程序計(jì)程儀的執(zhí)行,關(guān)閉執(zhí)行操作系統(tǒng),將“程序計(jì)程儀狀態(tài)值”關(guān)閉到執(zhí)行操作系統(tǒng)。 “pum計(jì)程儀程序狀態(tài)值”為時,表示pum計(jì)程儀程序正常結(jié)束的值以外的值表示pum程序錯誤結(jié)束。 10、使用文件方法:r(rb ) (只讀)打開讀取數(shù)據(jù)的文本文件(二進(jìn)制文件),該文件應(yīng)該已經(jīng)存在。 w(wb ) (只寫入)打開寫入數(shù)據(jù)的文本文件(二進(jìn)制文件),如果該文件不存在,則在打開時創(chuàng)建新文件。 如果文件存在,則在打開時刪除該文件,然后重新創(chuàng)建新文件。 a(ab ) (追加)不刪除原始數(shù)據(jù),在文本文件(二進(jìn)制文件)的末尾追加數(shù)據(jù)。、13.3文件

6、的打開和關(guān)閉、11、使用文件方式:r (rb )打開讀取/寫入數(shù)據(jù)的文本文件(二進(jìn)制文件),該文件已經(jīng)存在w (wb ),讀取/寫入數(shù)據(jù)的文本文件(a (ab )為讀寫數(shù)據(jù)打開文本文件(二進(jìn)制文件),寫入數(shù)據(jù)時,不刪除原來的數(shù)據(jù)而在文件的末尾添加數(shù)據(jù),13.3文件的打開和關(guān)閉,12,文件的關(guān)閉:使用一個文件例如fclose(fp ); fopen函數(shù)的門值:正常打開,指向文件結(jié)構(gòu)的指針無法打開。 空值。 fclose函數(shù)的上限值在文件成功關(guān)閉時返回0,否則返回EOF(stdio.h中定義的象征符常數(shù)-1)。 打開和關(guān)閉13.3文件,讀寫13,13.4文件,1,文字讀寫函數(shù)fgetc和fputc

7、 int fgetc(FILE *fp )說明:從指定的文件讀取文字。 這個文件需要通過讀寫來打開。 fgetc函數(shù)的調(diào)用格式是: ch=fgetc(fp ); fp是FILE型指針變量,ch是字符變量。 如果在執(zhí)行fgetc讀取字符時檢測到文件結(jié)束標(biāo)志,則函數(shù)返回文件結(jié)束標(biāo)志EOF。 EOF是stdio.h中定義的象征符常數(shù),其值為-1。 打開文件后,我就能讀寫了。 14、例:從一個文本(文字網(wǎng)站數(shù)據(jù)庫)文件中依次讀取文字,在畫面上顯示。 ch=fgetc(fp ); 魔法少女=EOF) putchar(ch ); ch=fgetc(fp ); 文本文件包含字符的ASCII查詢密碼,但因?yàn)锳

8、SCII查詢密碼=0,所以將eof-1作為文件結(jié)束標(biāo)志比較合適。 二進(jìn)制文件不能以EOF作為文件的結(jié)束標(biāo)志,因?yàn)樗旧泶鎯?shù)據(jù)本身,因此它本身可能是-1。 必須用庫函數(shù)feof ()判斷是否結(jié)束。15、庫函數(shù)feof(): 1 )用法: intfeof() 2)功能:如果在執(zhí)行文件讀取操作時找到文件的末尾,則函數(shù)返回邏輯true(1);否則,函數(shù)返回邏輯false(0)。 feof ()函數(shù)同時適用于ASCII查詢密碼文件和二進(jìn)制文件。 3 )! feof ()表示文件輸入沒有結(jié)束,循環(huán)仍在繼續(xù)。 例如: while (! feof(fp) c=fgetc(fp): 4 )此方法也適用于文本文

9、件、16、fputc ()、fputc ()函數(shù)將單個字符寫入堆磁盤文件。 形式: fputc(ch,fp ); 從ch輸出的文字fopen函數(shù)取得門限值的fpFILE型指針變量。 fputc函數(shù)也返回一個值。 如果輸出成功,則門值為輸出字符。如果輸出失敗,則返回EOF。17、例f1 :在文件abc.txt中存儲有3個字符的abc,調(diào)查下一個各程序執(zhí)行后的abc.txt的內(nèi)容。#包括卷主機(jī)()文件* FP; 法國語:普特(d,fp ); fclose(fp );#包括卷主機(jī)()文件* FP; 法國語:法國語:法國語; fclose(fp );#包括卷主機(jī)()文件* FP; 法國語:普特(d,f

10、p ); fclose(fp );abc、abcd、d、18、#包括卷主機(jī)()文件* FP; 法國語:普特(d,fp ); fclose(fp );#包括卷主機(jī)()文件* FP; 法國語:法國語:法國語; fclose(fp );#包括卷主機(jī)()文件* FP; 法國語:普特(d,fp ); fclose(fp ); 另外,dbc、d、abcd,例f2:在文件abc.txt中保存有3個文字的abc,看下一個各程序執(zhí)行后的abc.txt的內(nèi)容。 19、#包裝主機(jī)()文件* FP; FP=開放(ABC.txt,r ) :打印(% d,獲得(FP ) ); fclose(fp );abc、例f3 :在

11、文件abc.txt中存儲有3個字符的abc,看到下面的各程序執(zhí)行后的abc.txt的內(nèi)容和輸出結(jié)果。97、-1、#包括主()文件* FP; FP=開放(ABC.txt,w ) :打印(% d,獲得(FP ) ); fclose(fp );#包括主()文件* FP; FP=開放(ABC.txt,a ) :打印(% d,獲得(FP ) ); fclose(fp ); abc、-1、20、#包括主()文件* FP; FP=開放(ABC.txt,r ) :打印(% d,獲得(FP ) ); fclose(fp );abc、例f4 :文件abc.txt中保存有3個字符的abc,下面的各程序被執(zhí)行后的ab

12、c.txt的內(nèi)容和輸出結(jié)果、97、-1、#include main() FILE *fp; FP=開放(ABC.txt,w ) :打印(% d,獲得(FP ) ); fclose(fp );#包括主()文件* FP; FP=開放(ABC.txt,a ) :打印(% d,獲得(FP ) ); fclose(fp ); 還有,abc,97,21,在在先中學(xué)到的getchar和putchar實(shí)際上是從fputc和fgetc函數(shù)派生的,由于是在預(yù)處理指令#define中定義的宏命令,所以確切地說,getchar和putchar不是函數(shù),而我們可以使用# define putchar 其中,stdout

13、和stdin都是系統(tǒng)定義,為了簡單起見,系統(tǒng)將fputc和fgetc定義為宏命令名putc和getc,通常可以將它們視為相同的函數(shù)。 定義補(bǔ)丁(ch,F(xiàn)P )補(bǔ)丁(ch,F(xiàn)P ) #定義獲得(FP )補(bǔ)丁(fgetc ),13.4文件的讀寫,22,示例13,#包括卷主()文件* FP; char ch、*文件名=out.txt; if (FP=文件名,w )=空)打印機(jī)(cannotopenfilen )。 exit(0); 打印(放置輸入字符串3360 ); ch=getchar (); 魔法少女=#,fputc (ch,fp ); putchar(ch ); ch=getchar ();

14、fclose(fp ); 別忘了關(guān)閉文件。 執(zhí)行完堆計(jì)程儀程序后,可以在dos中使用type命令查看out.txt文件。 23,例如:我們知道文本文件letter.dat包含26個小寫字符。 打開此文件,在屏幕上顯示其內(nèi)容,并在文件末尾添加26個大寫字母。#包括主()文件* FP; 查爾斯; 英特爾; if(fp=fopen(letter.dat,a ) )=空)打印機(jī)(cannotopenfilen )。 exit(0); ch=fgetc(fp ); 魔法少女=EOF) putchar(ch ); ch=fgetc(fp ); for(i=0; i26; (一)飛行器(ai,fp ); f

15、close(fp );24、封搖滾樂投入產(chǎn)出定: fread、fwrite函數(shù);調(diào)用格式: fread (緩沖區(qū)、大小、計(jì)數(shù)、FP ) fwrite (緩沖區(qū)、大小、)錯誤或文件的末尾;返回EOF。 buffer :指針。 fread是讀取的數(shù)據(jù)的保存位置。 在fwrite中,是輸出數(shù)據(jù)的地址(起始地址)。 size :讀取/寫入數(shù)據(jù)標(biāo)簽搖滾樂的大小(字節(jié)數(shù))。 count :要讀取/寫入的數(shù)據(jù)標(biāo)簽搖滾樂的數(shù)量。 fp :指向要讀取/寫入的文件的文件指針。13.4文件讀寫,25,如:從牛鼻子板輸入四位同學(xué)的信息,以二進(jìn)制格式存入文件。 # include main () structstudentcharname 10; 英數(shù)、阿格e、斯科爾; s4; 英特爾; 文件* FP; FP=開放(stud.txt,WB ) :關(guān)閉(I=0; i4; I )打印(輸入信息:n ); 掃描(% s % d % d % d,二進(jìn)制文件在dos中用類型命令

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論