C程序設(shè)計(jì)——文件PPT課件_第1頁
C程序設(shè)計(jì)——文件PPT課件_第2頁
C程序設(shè)計(jì)——文件PPT課件_第3頁
C程序設(shè)計(jì)——文件PPT課件_第4頁
C程序設(shè)計(jì)——文件PPT課件_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、9文件,解析c程序設(shè)計(jì)第2章簡單計(jì)程儀程序設(shè)計(jì),2、文件系統(tǒng)、緩沖型文件系統(tǒng):系統(tǒng)自動(dòng)在存儲(chǔ)器中按每個(gè)文件打開緩沖器,作為程序計(jì)程儀程序和磁盤文件數(shù)據(jù)交換的中間介質(zhì),每3步用習(xí)語言的程序庫函數(shù)實(shí)現(xiàn), 解析c方案設(shè)計(jì)第2章簡單方案計(jì)程儀方案設(shè)計(jì)、3、文件投入產(chǎn)出相關(guān)庫函數(shù)、# include open:fopen (); 讀寫: fgetc (); fputc (); fgets (); fputs (); fread (); fwrite (); fscanf (); fprintf (); 文件位置指針rewind (); fseek (); ftell (); feof (); 關(guān)閉: f

2、close (); 法寶:每個(gè)庫函數(shù)都可以在調(diào)用時(shí)查詢。 輸入TC:CTRL F1 VC函數(shù)名稱,則會(huì)顯示函數(shù)形式的關(guān)殘奧字儀表。 c方案設(shè)計(jì)第2章簡單方案計(jì)程儀設(shè)計(jì),4,需要解決的問題1 :將學(xué)生信息保存在文件中,從文件轉(zhuǎn)入數(shù)組,# include # definen 30 structstucharname 10; 英數(shù); 英格; 卡爾阿德德爾15; 解析c方案設(shè)計(jì)第2章簡單方案計(jì)程儀設(shè)計(jì)、5、1、輸入學(xué)生信息存儲(chǔ)排列、void main() struct stu boyaN、boybN、*pp、*qq; 文件* FP; 定義指向文件類型的指針fp*/int i的打印數(shù)據(jù)(I=0,PP=博

3、雅; iname,F(xiàn)ILE類型在stdio.h文件中定義。 類型結(jié)構(gòu)輸入級(jí)別; 緩沖區(qū)是滿還是空*/unsigned flags; /*文件狀態(tài)標(biāo)志*/char fd; /*文件描述符* /未指定的卡片保持; 沒有緩沖區(qū)不讀字符* /短大小; /*緩沖區(qū)大小* /未指定的char *緩沖區(qū); /*數(shù)據(jù)緩沖區(qū)的位置* /未簽名的char * curp; /*文件定位指針* /未標(biāo)識(shí)的is temp; /*用于臨時(shí)文件指示器* /短令牌/*有效性檢查* /文件; 解析c計(jì)程儀編程第2章簡單計(jì)程儀編程,6,2,保存文件(打開文件-保存-關(guān)閉文件),/*首先打開文件*/if(fp=fopen(stu_

4、list.dat,WB ) )=null ) printf (cannen ); exit(1)、文件名(char *文件名、char *類型)示例:文件名是文件名的包含路徑。 如果沒有路徑,則打開當(dāng)前目錄查詢的文件的類型是r、w、rw和a,其中只讀、只讀、讀/寫,附加的“b”表示二進(jìn)制文件,如果不寫入“b”,則文本文件的返還值是指向該文件的指針存儲(chǔ)在ASCII查詢密碼文件中的格式: 3、0、0、0、0、(5字節(jié))存儲(chǔ)在二進(jìn)制文件中的格式:30000的補(bǔ)碼(2字節(jié))、11101010 01100000、兩者的特征: ASCII文件浪費(fèi)了空間和時(shí)間, 直觀的二進(jìn)制文件節(jié)省空間和時(shí)間,非直觀的解析

5、c程序設(shè)計(jì)第2章簡單計(jì)程儀程序設(shè)計(jì),7,2,保存文件(打開文件-保存-關(guān)閉文件),/*保存文件(打印到文件) */for(i=0,pp=boya; 名稱,PP -編號(hào),pp-age,pp-addr; int fprintf(FILE *fp、char *format、arg1、argn )函數(shù):也可以在所有存儲(chǔ)的字符類型中使用fwrite(pp,sizeof(struct stu ),1,fp ) 、unsigned fwrite(void *ptr,unsigned size,unsigned numb,F(xiàn)ILE *fp )函數(shù)功能:將從ptr開始的numb個(gè)size大小的數(shù)據(jù)標(biāo)簽搖滾樂寫入

6、fp所指向的文件中,函數(shù)調(diào)用為count的寫字符或字符串時(shí),請(qǐng)使用fputc ()和fputs ()、int fputc(int c,F(xiàn)ILE *fp ); 功能:如果對(duì)fp的字母c輸出錯(cuò)誤則返回EOF,否則返回c例: fputc(a,fp ); /*將文字a寫入fp指向的文件*/,int fputs(char *s,F(xiàn)ILE *fp )的功能:將文字列寫入fp指向的文件成功時(shí)為0,錯(cuò)誤時(shí)為EOF例: fputs(“abcde”,fp ); /*將字符串寫入fp指向的文件*/中,c plug計(jì)程儀編程第2章簡單計(jì)程儀編程,8,2,保存文件(打開文件-保存-關(guān)閉文件),/*最后關(guān)閉文件*/fcl

7、ose(fp ),int fclose(FILE *fp ) 返還值:關(guān)閉成功時(shí)的返還值為0。 否則(例如,磁盤空間不足、受寫保護(hù)或關(guān)閉封閉的文件)返回EOF或-1。解析c計(jì)程儀編程第2章簡單計(jì)程儀編程,9,3,從文件讀入數(shù)組(打開文件-讀入數(shù)組-關(guān)閉文件),if(fp=fopen(stu_list.dat,Rb ) )=null ) printf (cannen ); 出(2)個(gè)(I=0; 輸出到iname、stdout文件后,輸出到屏幕上。 實(shí)際上,來自牛鼻子板的輸入、到屏幕的輸出、錯(cuò)誤都以文件形式存儲(chǔ)信息。 這三個(gè)標(biāo)準(zhǔn)defile分別是stdin、stdout和stderr,從用戶的角度

8、對(duì)文件進(jìn)行分類,分為標(biāo)準(zhǔn)defile和普通磁盤文件。 c方案設(shè)計(jì)解析第2章的簡單方案計(jì)程儀設(shè)計(jì),10,需要解決的問題2 :復(fù)制文件,輸入兩個(gè)文件名,打開兩個(gè)文件,將一個(gè)文件的內(nèi)容復(fù)制到另一個(gè)文件,關(guān)閉兩個(gè)文件,c方案計(jì)程儀,第2章簡單方案計(jì)程儀,1 朝鮮、文件130、文件230; 打印(輸入源文件3360 )掃描(% s,文件1 )/*源文件名* /打印(輸入對(duì)象文件3360 )掃描(% s,文件2 )/*目標(biāo)文件名*/if (FP1=foff exit(1) /*打開源文件*/if (FP2=fopen (文件2,w)=fp2=stdout; /*打開目標(biāo)文件,如果找不到則輸出到屏幕*/*從

9、源文件讀取字符并寫入目標(biāo)文件*/while(ch=fgetc(fp1) ) )!=EOF) fputc(ch,fp2) fclose(fp1) /*關(guān)閉兩個(gè)文件*/fclose(fp2)、解析c編程計(jì)程儀第2章簡單計(jì)程儀定編程、12,/* copy.c */#包含# includevoidmain (I 查爾斯; 魔法少女=3) puts (錯(cuò)誤在參數(shù)中! ); 打開源文件(1)/*打開源文件(FP2=打開(argv 2,w ) )=fppt /*打開目標(biāo)文件,如果找不到則輸出到屏幕*/*從源文件讀取字符并寫入目標(biāo)文件*/while(ch=fgetc(fp1) ) )!=EOF) fputc(

10、ch,fp2) fclose(fp1) /*在編譯同時(shí)關(guān)閉兩個(gè)文件的*/fclose (FP2)/*堆計(jì)程儀欄之后,可以在dos命令行中輸入三個(gè)殘奧參數(shù)來執(zhí)行此操作。 第一個(gè)是普計(jì)程儀欄的名稱copy,第二個(gè)是源文件名,第三個(gè)是營銷對(duì)象文件名。 整個(gè)計(jì)程儀程序的功能是實(shí)現(xiàn)文件復(fù)制*/的c程序計(jì)程儀程序設(shè)計(jì)第2章簡單計(jì)程儀程序設(shè)計(jì),13、分析隨機(jī)讀寫文件的方法嗎? 對(duì)上一份文件的讀寫都是從頭到尾依次讀(寫)。 如何只讀寫文件的一部分呢? 除了FILE *類型的指針fp指向文件的開頭之外,char *類型的文件指針curp還指向文件中的下一個(gè)要讀取(寫入)的字符。 通過改變curp的位置可以進(jìn)行隨

11、機(jī)的讀寫。、c計(jì)程儀編程第2章簡單計(jì)程儀編程、14、若干相關(guān)函數(shù)、void rewind(FILE *fp )功能:將fp內(nèi)的文件位置指針移動(dòng)到文件開始位置int fseek(FILE *fp,long offset, int fromwhere )的功能:將fp內(nèi)的文件位置指針置于相應(yīng)的位置fromwhere: SEEK_SET或0-文件開始SEEK_CUR或1-當(dāng)前位置SEEK_END或2-文件末尾long ftell 功能:返回fp中文件位置指針?biāo)谖恢胕nt feof(FILE *fp )的功能:如果文件位置指針指向fp的末尾,則返回非零值;否則返回0示例: while (feof (

12、FP )=0) c=fgetc c柱計(jì)程儀設(shè)計(jì)第2章簡單柱計(jì)程儀設(shè)計(jì),15、#包括結(jié)構(gòu)樹char name 10; 英數(shù); 英格; 卡爾阿德德爾15; boy,*qq=,示例3,解析c計(jì)程儀編程第2章簡單計(jì)程儀編程,16,示例4 :柱結(jié)構(gòu):浮動(dòng)fun1(浮動(dòng)x )/*函數(shù)1定義* /浮動(dòng)fun2(浮動(dòng)x )/*函數(shù)2定義* /浮動(dòng)集成(浮動(dòng)) 浮點(diǎn)a浮點(diǎn)b) /*積分函數(shù)定義*/void main () y1=對(duì)integral (fun 1,a,b) /*函數(shù)1進(jìn)行積分*/y2=對(duì)integral (fun 2,a,b) /*函數(shù)2進(jìn)行積分*/*實(shí)際尺殘奧參數(shù)是函數(shù)名,波形殘奧參數(shù)是函數(shù)指針,函數(shù)名是函數(shù)的參數(shù)這是指向返還值為int的函數(shù)的*/指針初始化,其中p=max; /*f是指f

溫馨提示

  • 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. 人人文庫網(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)論