C語言程序設(shè)計(jì)-單元十對文件讀寫操作課件_第1頁
C語言程序設(shè)計(jì)-單元十對文件讀寫操作課件_第2頁
C語言程序設(shè)計(jì)-單元十對文件讀寫操作課件_第3頁
C語言程序設(shè)計(jì)-單元十對文件讀寫操作課件_第4頁
C語言程序設(shè)計(jì)-單元十對文件讀寫操作課件_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

對文件讀寫操作C語言程序設(shè)計(jì)高等教育出版社新形態(tài)一體化教材單元十對文件讀寫操作C語言程序設(shè)計(jì)高等教育出版社新形態(tài)一體化1導(dǎo)學(xué)文件:存儲(chǔ)在外部介質(zhì)上數(shù)據(jù)的集合.文件分類:按文件的邏輯結(jié)構(gòu):記錄文件和流式文件按存儲(chǔ)介質(zhì):普通文件和設(shè)備文件按數(shù)據(jù)的組織形式:文本文件和二進(jìn)制文件導(dǎo)學(xué)文件:存儲(chǔ)在外部介質(zhì)上數(shù)據(jù)的集合.文件分類:2導(dǎo)學(xué)第1步:打開書本讀書/寫書第2步:讀書或?qū)懽值?步:合上書本讀寫文件第1步:打開文件第2步:讀或?qū)憯?shù)據(jù)第3步:關(guān)閉文件【問題1】如何將程序運(yùn)行結(jié)果數(shù)據(jù)保存成文件,以備將來使用。【問題2】程序處理的原始數(shù)據(jù)是從某個(gè)文件中讀取出來的。導(dǎo)學(xué)第1步:打開書本讀書/寫書第2步:讀書或?qū)懽值?步3目錄1文件操作基本思路2文件的打開與關(guān)閉3文件讀寫操作4文件檢測和定位函數(shù)文件操作基本思路目錄1文件操作基本思路2文件的打開與關(guān)閉3文件讀寫操作4文件41文件操作基本思路讀寫文件第1步:打開文件第2步:讀或?qū)憯?shù)據(jù)第3步:關(guān)閉文件文件指針變量定義格式:FILE*文件指針變量名;fopen();fgetc()/fputc()、fscanf()/fprintf()等fclose();FILE*fp;其中FILE必須大寫*表示定義的變量是指針類型利用文件指針,結(jié)合文件操作函數(shù)進(jìn)行1文件操作基本思路讀寫文件第1步:打開文件第2步:讀或?qū)?目錄1文件操作基本思路2文件的打開與關(guān)閉3文件讀寫操作4文件檢測和定位函數(shù)文件的打開與關(guān)閉目錄1文件操作基本思路2文件的打開與關(guān)閉3文件讀寫操作4文件62文件的打開與關(guān)閉——引例FILE*fp;fp=fopen(“e:\\test.dat”,”r”);fclose(fp);//文件指針//打開文件//關(guān)閉文件打開哪個(gè)文件以何種方式打開2文件的打開與關(guān)閉——引例FILE*fp;fp72文件的打開與關(guān)閉——文件打開fopen()(1)格式(2)返回值文件指針名=fopen("文件名","文件打開方式");正常打開,返回文件指針(地址)打開失敗,返回空指針(NULL)r-只讀方式w-新建文件,寫數(shù)據(jù)a-文件尾追加寫數(shù)據(jù)t-組合使用,按文本文件操作b-組合使用,按二進(jìn)制操作+-組合使用,以讀寫方式打開【例10-2】打開當(dāng)前目錄中的test.dat文件,判斷并輸出文件打開狀態(tài)信息。(3)示例2文件的打開與關(guān)閉——文件打開fopen()(1)格式(2)82文件的打開與關(guān)閉——隨堂練習(xí)(1)定義一個(gè)文件指針fpin,

指向以只讀方式打開的文本文件“d:\test\in.dat”。(2)定義一個(gè)文件指針fpout,指向以只寫方式打開的文本文件“d:\test\out.dat”。2文件的打開與關(guān)閉——隨堂練習(xí)(1)定義一個(gè)文件指針fpi92文件的打開與關(guān)閉——文件關(guān)閉fclose()(1)格式(2)返回值(3)示例fclose(FILE*fp);正常關(guān)閉,返回值為0異常關(guān)閉,返回值為非0fclose(fp);思考:若異常關(guān)閉文件,可能導(dǎo)致的問題?2文件的打開與關(guān)閉——文件關(guān)閉fclose()(1)格式(210目錄1文件操作基本思路2文件的打開與關(guān)閉3文件讀寫操作4文件檢測和定位函數(shù)文件讀寫操作目錄1文件操作基本思路2文件的打開與關(guān)閉3文件讀寫操作4文件113文件讀寫操作——按字符讀寫fgetc()/fputc()fp=fopen(“e:\\test.dat”,”r”);ch=fgetc(fp);(2)fgetc()的使用返回讀取到的字符讀到文件尾時(shí),返回值為

文件結(jié)束標(biāo)志EOF(-1)返回值格式及示例【例10-6】fp=fopen(“e:\\test.dat”,”w”);fputc(ch,fp);若寫入成功,返回寫入的字符若寫入失敗,返回EOF(-1)。(1)fputc()的使用格式及示例返回值【例10-4】3文件讀寫操作——按字符讀寫fgetc()/fputc()123文件讀寫操作——按字符讀寫fgetc()/fputc()【練習(xí)】

利用fputc()和fgetc()函數(shù)將文件test.dat復(fù)制為test.bak。3文件讀寫操作——按字符讀寫fgetc()/fputc()【133文件讀寫操作——按字符串讀寫fgets()/fputs()fp=fopen(“e:\\test.dat”,”r”);(2)fgets()的使用返回值格式及示例charstr[100];fgets(str,n,fp);//fp讀取n-1個(gè)字符存入str中讀成功,返回存入字符串的地址讀失敗,返回一個(gè)空指針NULL【例10-10】fp=fopen(“e:\\test.dat”,”w”);(1)fputs()的使用格式及示例返回值【例10-8】寫成功,函數(shù)返回值為非負(fù)整數(shù)寫失敗,返回EOF(-1)fputs(“IloveChina.”,fp);//字符串可以是常量、指針或數(shù)組3文件讀寫操作——按字符串讀寫fgets()/fputs()143文件讀寫操作——按字符串讀寫fgets()/fputs()讀取結(jié)果是什么?【分析】char

str[100];FILE*fp;fp=fopen(“test.txt”,“r”);fgets(str,80,fp);3文件讀寫操作——按字符串讀寫fgets()/fputs()153文件讀寫操作——按格式化讀寫fprintf()/fscanf()(1)fprintf()的使用格式及示例(2)fscanf()的使用格式及示例【例10-14】【例10-12】fprintf(fp,"%d,%d",10,20);

fprintf(fp,"%lf",n); fprintf(fp,"%s","Howareyou.");fscanf(fp,"%d%d",&a,&b);fscanf(fp,"%lf",&n);fscanf(fp,"%s",str);寫成功,返回寫入文件的字節(jié)個(gè)數(shù)寫失敗,則返回一個(gè)負(fù)數(shù)返回值讀成功,返回讀取數(shù)據(jù)的個(gè)數(shù)讀失敗,返回EOF返回值提示:fscanf讀取非單字符數(shù)據(jù)時(shí)默認(rèn)的間隔符為:空格制表符'\t'換行符'\n'3文件讀寫操作——按格式化讀寫fprintf()/fscan163文件讀寫操作——按格式化讀寫fprintf()/fscanf()【練習(xí)】從鍵盤輸入如下表格中三個(gè)學(xué)生數(shù)據(jù),寫入文件stu.dat中,再從文件中讀出這些數(shù)據(jù)顯示在屏幕上,使用格式化讀寫文件函數(shù)完成。學(xué)號(hào)姓名年齡住址1601王帥18鳳凰御景小區(qū)1602李想17御龍翰府小區(qū)1603張揚(yáng)19文軒名苑小區(qū)3文件讀寫操作——按格式化讀寫fprintf()/fscan173文件讀寫操作——按數(shù)據(jù)塊讀寫fread()/fwrite()ints[10]={1,2,3,4,5,6,7,8,9,0};fwrite(s,sizeof(int),10,fp);(1)fwrite()的使用格式及示例(2)fread()的使用格式及示例【例10-18】【例10-16】返回值返回值寫成功,返回寫入數(shù)據(jù)項(xiàng)個(gè)數(shù)寫失敗,返回0inta[10];fread(a,sizeof(int),10,fp);讀成功,返回讀取到的數(shù)據(jù)項(xiàng)個(gè)數(shù)讀失敗或讀到文件末尾返回03文件讀寫操作——按數(shù)據(jù)塊讀寫fread()/fwrite(183文件讀寫操作——按數(shù)據(jù)塊讀寫fread()/fwrite()【練習(xí)】從鍵盤輸入如下表格中三個(gè)學(xué)生數(shù)據(jù),寫入文件stu.dat中,再從文件中讀出這些數(shù)據(jù)顯示在屏幕上,使用數(shù)據(jù)塊讀寫文件函數(shù)完成。學(xué)號(hào)姓名年齡住址1601王帥18鳳凰御景小區(qū)1602李想17御龍翰府小區(qū)1603張揚(yáng)19文軒名苑小區(qū)3文件讀寫操作——按數(shù)據(jù)塊讀寫fread()/fwrite(19目錄1文件操作基本思路2文件的打開與關(guān)閉3文件讀寫操作4文件檢測和定位函數(shù)文件檢測和定位函數(shù)目錄1文件操作基本思路2文件的打開與關(guān)閉3文件讀寫操作4文件204文件檢測和定位函數(shù)——文件檢測函數(shù)(1)文件結(jié)束檢測函數(shù)feof()(2)讀寫文件出錯(cuò)檢測函數(shù)ferror()(3)文件出錯(cuò)標(biāo)志和文件結(jié)束標(biāo)志置0函數(shù)clearerr()函數(shù)格式:函數(shù)格式:函數(shù)格式:feof(文件指針);ferror(文件指針);clearerr(文件指針);【例10-19】函數(shù)功能:檢測文件位置指示器是否到達(dá)了文件結(jié)尾返回值:到文件尾,返回一個(gè)非0值,否則返回0函數(shù)功能:測試文件是否出現(xiàn)錯(cuò)誤返回值:未出錯(cuò),0;出錯(cuò),非0函數(shù)功能:使文件錯(cuò)誤標(biāo)志置為0返值:無4文件檢測和定位函數(shù)——文件檢測函數(shù)(1)文件結(jié)束檢測函數(shù)f214文件檢測和定位函數(shù)——文件定位函數(shù)(1)設(shè)置文件指位置指針fseek()函數(shù)格式:fseek(文件指針,偏移量,基準(zhǔn));【概念】文件位置指針-----指向當(dāng)前讀寫位置的指針。━━━━━━━━━━━━━━━

符號(hào)常量

數(shù)值

含義───────────────

SEEK_SET

0文件開頭

SEEK_CUR 1當(dāng)前位置

SEEK_END 2文件末尾━━━━━━━━━━━━━━━偏移量基準(zhǔn)長整型數(shù)據(jù)函數(shù)功能:改變文件位置指針的位置返回值:成功,返回0;失敗,返回非0值4文件檢測和定位函數(shù)——文件定位函數(shù)(1)設(shè)置文件指位置指針224文件檢測和定位函數(shù)——文件定位函數(shù)(2)獲取文件指針位置ftell()(3)文件位置指針復(fù)位rewind()函數(shù)格式:ftell(文件指針);函數(shù)格式:rewind(文件指針);函數(shù)功能:返回位置指針當(dāng)前位置(用相對文件開頭的位移量表示)返回值:成功,返回當(dāng)前位置指針位置;失敗,返回-1L。函數(shù)功能:重置文件位置指針到文件開頭返回值:無4文件檢測和定位函數(shù)——文件定位函數(shù)(2)獲取文件指針位置f234文件檢測和定位函數(shù)——隨堂練習(xí)利用學(xué)過的函數(shù)獲得計(jì)算機(jī)中任意一個(gè)文件的長度。4文件檢測和定位函數(shù)——隨堂練習(xí)利用學(xué)過的函數(shù)獲得計(jì)算機(jī)中任24目錄1文件操作基本思路2文件的打開與關(guān)閉3文件讀寫操作4文件檢測和定位函數(shù)目錄1文件操作基本思路2文件的打開與關(guān)閉3文件讀寫操作4文件25總結(jié)FILE*fp;fgetc()/fputc()、fscanf()/fprintf()fgets()/fputs()、fread()/fwrite()feof()、ferror()、clearerr()

fseek()、ftell()、rewind()文件指針文件讀寫函數(shù)文件檢測函數(shù)文件指針定位函數(shù)總結(jié)FILE*fp;fgetc()/fputc()、26謝謝!謝謝!27對文件讀寫操作C語言程序設(shè)計(jì)高等教育出版社新形態(tài)一體化教材單元十對文件讀寫操作C語言程序設(shè)計(jì)高等教育出版社新形態(tài)一體化28導(dǎo)學(xué)文件:存儲(chǔ)在外部介質(zhì)上數(shù)據(jù)的集合.文件分類:按文件的邏輯結(jié)構(gòu):記錄文件和流式文件按存儲(chǔ)介質(zhì):普通文件和設(shè)備文件按數(shù)據(jù)的組織形式:文本文件和二進(jìn)制文件導(dǎo)學(xué)文件:存儲(chǔ)在外部介質(zhì)上數(shù)據(jù)的集合.文件分類:29導(dǎo)學(xué)第1步:打開書本讀書/寫書第2步:讀書或?qū)懽值?步:合上書本讀寫文件第1步:打開文件第2步:讀或?qū)憯?shù)據(jù)第3步:關(guān)閉文件【問題1】如何將程序運(yùn)行結(jié)果數(shù)據(jù)保存成文件,以備將來使用。【問題2】程序處理的原始數(shù)據(jù)是從某個(gè)文件中讀取出來的。導(dǎo)學(xué)第1步:打開書本讀書/寫書第2步:讀書或?qū)懽值?步30目錄1文件操作基本思路2文件的打開與關(guān)閉3文件讀寫操作4文件檢測和定位函數(shù)文件操作基本思路目錄1文件操作基本思路2文件的打開與關(guān)閉3文件讀寫操作4文件311文件操作基本思路讀寫文件第1步:打開文件第2步:讀或?qū)憯?shù)據(jù)第3步:關(guān)閉文件文件指針變量定義格式:FILE*文件指針變量名;fopen();fgetc()/fputc()、fscanf()/fprintf()等fclose();FILE*fp;其中FILE必須大寫*表示定義的變量是指針類型利用文件指針,結(jié)合文件操作函數(shù)進(jìn)行1文件操作基本思路讀寫文件第1步:打開文件第2步:讀或?qū)?2目錄1文件操作基本思路2文件的打開與關(guān)閉3文件讀寫操作4文件檢測和定位函數(shù)文件的打開與關(guān)閉目錄1文件操作基本思路2文件的打開與關(guān)閉3文件讀寫操作4文件332文件的打開與關(guān)閉——引例FILE*fp;fp=fopen(“e:\\test.dat”,”r”);fclose(fp);//文件指針//打開文件//關(guān)閉文件打開哪個(gè)文件以何種方式打開2文件的打開與關(guān)閉——引例FILE*fp;fp342文件的打開與關(guān)閉——文件打開fopen()(1)格式(2)返回值文件指針名=fopen("文件名","文件打開方式");正常打開,返回文件指針(地址)打開失敗,返回空指針(NULL)r-只讀方式w-新建文件,寫數(shù)據(jù)a-文件尾追加寫數(shù)據(jù)t-組合使用,按文本文件操作b-組合使用,按二進(jìn)制操作+-組合使用,以讀寫方式打開【例10-2】打開當(dāng)前目錄中的test.dat文件,判斷并輸出文件打開狀態(tài)信息。(3)示例2文件的打開與關(guān)閉——文件打開fopen()(1)格式(2)352文件的打開與關(guān)閉——隨堂練習(xí)(1)定義一個(gè)文件指針fpin,

指向以只讀方式打開的文本文件“d:\test\in.dat”。(2)定義一個(gè)文件指針fpout,指向以只寫方式打開的文本文件“d:\test\out.dat”。2文件的打開與關(guān)閉——隨堂練習(xí)(1)定義一個(gè)文件指針fpi362文件的打開與關(guān)閉——文件關(guān)閉fclose()(1)格式(2)返回值(3)示例fclose(FILE*fp);正常關(guān)閉,返回值為0異常關(guān)閉,返回值為非0fclose(fp);思考:若異常關(guān)閉文件,可能導(dǎo)致的問題?2文件的打開與關(guān)閉——文件關(guān)閉fclose()(1)格式(237目錄1文件操作基本思路2文件的打開與關(guān)閉3文件讀寫操作4文件檢測和定位函數(shù)文件讀寫操作目錄1文件操作基本思路2文件的打開與關(guān)閉3文件讀寫操作4文件383文件讀寫操作——按字符讀寫fgetc()/fputc()fp=fopen(“e:\\test.dat”,”r”);ch=fgetc(fp);(2)fgetc()的使用返回讀取到的字符讀到文件尾時(shí),返回值為

文件結(jié)束標(biāo)志EOF(-1)返回值格式及示例【例10-6】fp=fopen(“e:\\test.dat”,”w”);fputc(ch,fp);若寫入成功,返回寫入的字符若寫入失敗,返回EOF(-1)。(1)fputc()的使用格式及示例返回值【例10-4】3文件讀寫操作——按字符讀寫fgetc()/fputc()393文件讀寫操作——按字符讀寫fgetc()/fputc()【練習(xí)】

利用fputc()和fgetc()函數(shù)將文件test.dat復(fù)制為test.bak。3文件讀寫操作——按字符讀寫fgetc()/fputc()【403文件讀寫操作——按字符串讀寫fgets()/fputs()fp=fopen(“e:\\test.dat”,”r”);(2)fgets()的使用返回值格式及示例charstr[100];fgets(str,n,fp);//fp讀取n-1個(gè)字符存入str中讀成功,返回存入字符串的地址讀失敗,返回一個(gè)空指針NULL【例10-10】fp=fopen(“e:\\test.dat”,”w”);(1)fputs()的使用格式及示例返回值【例10-8】寫成功,函數(shù)返回值為非負(fù)整數(shù)寫失敗,返回EOF(-1)fputs(“IloveChina.”,fp);//字符串可以是常量、指針或數(shù)組3文件讀寫操作——按字符串讀寫fgets()/fputs()413文件讀寫操作——按字符串讀寫fgets()/fputs()讀取結(jié)果是什么?【分析】char

str[100];FILE*fp;fp=fopen(“test.txt”,“r”);fgets(str,80,fp);3文件讀寫操作——按字符串讀寫fgets()/fputs()423文件讀寫操作——按格式化讀寫fprintf()/fscanf()(1)fprintf()的使用格式及示例(2)fscanf()的使用格式及示例【例10-14】【例10-12】fprintf(fp,"%d,%d",10,20);

fprintf(fp,"%lf",n); fprintf(fp,"%s","Howareyou.");fscanf(fp,"%d%d",&a,&b);fscanf(fp,"%lf",&n);fscanf(fp,"%s",str);寫成功,返回寫入文件的字節(jié)個(gè)數(shù)寫失敗,則返回一個(gè)負(fù)數(shù)返回值讀成功,返回讀取數(shù)據(jù)的個(gè)數(shù)讀失敗,返回EOF返回值提示:fscanf讀取非單字符數(shù)據(jù)時(shí)默認(rèn)的間隔符為:空格制表符'\t'換行符'\n'3文件讀寫操作——按格式化讀寫fprintf()/fscan433文件讀寫操作——按格式化讀寫fprintf()/fscanf()【練習(xí)】從鍵盤輸入如下表格中三個(gè)學(xué)生數(shù)據(jù),寫入文件stu.dat中,再從文件中讀出這些數(shù)據(jù)顯示在屏幕上,使用格式化讀寫文件函數(shù)完成。學(xué)號(hào)姓名年齡住址1601王帥18鳳凰御景小區(qū)1602李想17御龍翰府小區(qū)1603張揚(yáng)19文軒名苑小區(qū)3文件讀寫操作——按格式化讀寫fprintf()/fscan443文件讀寫操作——按數(shù)據(jù)塊讀寫fread()/fwrite()ints[10]={1,2,3,4,5,6,7,8,9,0};fwrite(s,sizeof(int),10,fp);(1)fwrite()的使用格式及示例(2)fread()的使用格式及示例【例10-18】【例10-16】返回值返回值寫成功,返回寫入數(shù)據(jù)項(xiàng)個(gè)數(shù)寫失敗,返回0inta[10];fread(a,sizeof(int),10,fp);讀成功,返回讀取到的數(shù)據(jù)項(xiàng)個(gè)數(shù)讀失敗或讀到文件末尾返回03文件讀寫操作——按數(shù)據(jù)塊讀寫fread()/fwrite(453文件讀寫操作——按數(shù)據(jù)塊讀寫fread()/fwrite()【練習(xí)】從鍵盤輸入如下表格中三個(gè)學(xué)生數(shù)據(jù),寫入文件stu.dat中,再從文件中讀出這些數(shù)據(jù)顯示在屏幕上,使用數(shù)據(jù)塊讀寫文件函數(shù)完成。學(xué)號(hào)姓名年齡住址1601王帥18鳳凰御景小區(qū)1602李想17御龍翰府小區(qū)1603張揚(yáng)19文軒名苑小區(qū)3文件讀寫操作——按數(shù)據(jù)塊讀寫fread()/fwrite(46目錄1文件操作基本思路2文件的打開與關(guān)閉3文件讀寫操作4文件檢測和定位函數(shù)文件檢測和定位函數(shù)目錄1文件操作基本思路2文件的打開與關(guān)閉3文件讀寫操作4文件474文件檢測和定位函數(shù)——文件檢測函數(shù)(1)文件結(jié)束檢測函數(shù)feof()(2)讀寫文件出錯(cuò)檢測函數(shù)ferror()(3)文件出錯(cuò)標(biāo)志和文件結(jié)束標(biāo)志置0函數(shù)clearerr()函數(shù)格式:函數(shù)格式:函數(shù)格式:feof(文件指針);ferror(文件指針);clearerr(文件指針);【例10-19】函數(shù)功能:檢測文件位置指示器是否到達(dá)了文件結(jié)尾返回值:到文件尾,返回一個(gè)非0值,否則返回0函數(shù)功能:測試文件是否出現(xiàn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論