![C語言文件中數(shù)據(jù)的訪問與存儲(chǔ)課件_第1頁](http://file4.renrendoc.com/view/b6b9e4d8360d0bf5bff32b52e20c2b6e/b6b9e4d8360d0bf5bff32b52e20c2b6e1.gif)
![C語言文件中數(shù)據(jù)的訪問與存儲(chǔ)課件_第2頁](http://file4.renrendoc.com/view/b6b9e4d8360d0bf5bff32b52e20c2b6e/b6b9e4d8360d0bf5bff32b52e20c2b6e2.gif)
![C語言文件中數(shù)據(jù)的訪問與存儲(chǔ)課件_第3頁](http://file4.renrendoc.com/view/b6b9e4d8360d0bf5bff32b52e20c2b6e/b6b9e4d8360d0bf5bff32b52e20c2b6e3.gif)
![C語言文件中數(shù)據(jù)的訪問與存儲(chǔ)課件_第4頁](http://file4.renrendoc.com/view/b6b9e4d8360d0bf5bff32b52e20c2b6e/b6b9e4d8360d0bf5bff32b52e20c2b6e4.gif)
![C語言文件中數(shù)據(jù)的訪問與存儲(chǔ)課件_第5頁](http://file4.renrendoc.com/view/b6b9e4d8360d0bf5bff32b52e20c2b6e/b6b9e4d8360d0bf5bff32b52e20c2b6e5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第6章文件中數(shù)據(jù)的訪問與存儲(chǔ)6.1文件的概念和分類 6.2文件中數(shù)據(jù)的讀寫步驟6.3文本文件中數(shù)據(jù)的讀寫操作P1916.1文件的概念和分類P192文件是存儲(chǔ)在外部介質(zhì)上數(shù)據(jù)的集合。存儲(chǔ)在磁盤上的文件稱為磁盤文件。返回6.1文件的概念和分類P192按文件的內(nèi)容分: 程序文件和數(shù)據(jù)文件按文件中數(shù)據(jù)的組織形式分: 文本文件和二進(jìn)制文件返回6.1文件的概念和分類P192如果要訪問文件中的數(shù)據(jù)或向文件中存儲(chǔ)數(shù)據(jù),都要以文件名為標(biāo)識(shí)。僅介紹文本文件中數(shù)據(jù)的讀寫方法。返回6.2文件中數(shù)據(jù)的讀寫步驟P192(1)打開文件無論對(duì)文件進(jìn)行讀還是寫操作,都需要先打開文件,打開文件用fopen函數(shù)。(2)讀寫文件寫就
2、是將內(nèi)存中的數(shù)據(jù)存到文件中去。主要介紹fscanf和fprintf函數(shù)。(3)關(guān)閉文件當(dāng)文件不再使用時(shí),需將其關(guān)閉。關(guān)閉文件用fclose函數(shù)。返回6.3.1向文本文件中寫數(shù)據(jù)6.3.2從已有的文本文件中讀數(shù)據(jù)6.3.3文本文件中對(duì)數(shù)據(jù)的讀寫操作6.3文本文件中數(shù)據(jù)的讀寫操作P192返回6.3.1向文本文件中寫數(shù)據(jù)P192永久性地存放數(shù)據(jù),如存儲(chǔ)測量數(shù)據(jù)結(jié)果、學(xué)生成績存檔等,在C語言中用文件??梢杂胒printf函數(shù)向文本文件中寫數(shù)據(jù)。問題的提出【實(shí)例6-1】改寫實(shí)例1-1。編寫程序,將如圖1.2所示的問候語寫到d盤下c文件夾中的“f1.txt”文件中。任務(wù)與分析6.3.1向文本文件中寫數(shù)據(jù)P
3、192操作步驟#include main() 定義文件指針fp 打開(或建立)d盤c文件夾中的“f1.txt”文件 將問候語寫入“f1.txt”文件 關(guān)閉文件FILE *fp;fp=fopen(d:cf1.txt,w);fprintf(fp,n);fprintf(fp,n);fprintf(fp,n);fprintf(fp,n);fprintf(fp,n);fprintf(fp,n);fprintf(fp,n);fclose(fp);【實(shí)例6-2】編寫程序,用人機(jī)對(duì)話的形式隨機(jī)產(chǎn)生3道100以內(nèi)加法題,并將題目和用戶輸入的答案寫到d盤c文件夾中的“f2.txt”文件中。P194操作步驟#inc
4、lude #include #include main() 定義整型變量a、b、c和i 定義文件指針fpint a,b,c,i;FILE *fp;操作步驟 打開d盤c文件夾中的“f2.txt”文件 隨機(jī)產(chǎn)生三個(gè)題目fp=fopen(d:cf2.txt,w);if(fp=NULL) printf(Can not open the file.n); exit(0);srand(time(0);for(i=1; i=3; i+) a=rand()%100; b=rand()%100;文件打開失敗 操作步驟 等待鍵盤輸入答案 將題目和答案存入“f2.txt”文件 關(guān)閉文件 fprintf(fp,(%d
5、) %d+%d=%dn, i,a,b,c);fclose(fp); printf(第%d題:%d+%d=,i,a,b); scanf(%d,&c);形式接近 【實(shí)例6-3】編寫程序,將英漢對(duì)照表寫到當(dāng)前文件夾中的“f3.txt”文件中。P195操作步驟#include #include struct list 定義存放中文單詞的成員 定義存放英文單詞的成員;main() 定義名為list的結(jié)構(gòu)體類型數(shù)組a并初始化 定義循環(huán)變量i 定義文件指針fp 打開當(dāng)前文件夾中的“f3.txt”文件 將結(jié)構(gòu)體數(shù)組a中的數(shù)據(jù)寫入“f3.txt”文件 關(guān)閉文件char cn10;char en10;既清晰又易讀
6、取操作步驟#include #include struct list 定義存放中文單詞的成員 定義存放英文單詞的成員;main() 定義名為list的結(jié)構(gòu)體類型數(shù)組a并初始化 定義循環(huán)變量i 定義文件指針fp 打開當(dāng)前文件夾中的“f3.txt”文件 將結(jié)構(gòu)體數(shù)組a中的數(shù)據(jù)寫入“f3.txt”文件 關(guān)閉文件main() struct list a5= 中國,China,女孩, girl,男孩,boy,人,man, 一,one; int i; FILE *fp; fp=fopen(f3.txt,w); if(fp=NULL) printf(Can not open the file.n); exi
7、t(0); for(i=0; i5; i+) fprintf(fp,%15s%15sn, ai,ai.en); fclose(fp);相對(duì)路徑最好提供寬度【實(shí)例6-4】編寫程序,向已有的英漢對(duì)照表(實(shí)例6-3中建立的文件“f3.txt”)最后,添加新的單詞。P197操作步驟#include struct list 定義存放中文單詞的成員 定義存放英文單詞的成員;main() 定義名為list的結(jié)構(gòu)體類型變量w 定義文件指針fp 打開當(dāng)前文件夾中的“f3.txt”文件 輸入要添加的單詞 將添加的單詞寫入“f3.txt”文件 關(guān)閉文件char cn10;char en10;struct list
8、w;FILE *fp;gets(w);gets(w.en);fprintf(fp,%15s%15sn,w,w.en);fp=fopen(f3.txt,a);if(fp=NULL) fclose(fp);打開文件的一般形式: 文件指針名=fopen(文件名,打開方式); 歸納分析打 開方 式功 能 文本 二進(jìn)制 rrb僅為讀打開已有文件wwb僅為寫打開aab為追加打開判斷文件打開是否成功:if(文件指針名=NULL) printf(Can not open the file.n); exit(0);歸納分析關(guān)閉文件的一般形式: fclose(文件指針); fprintf函數(shù)的一般形式: fpri
9、ntf(文件指針名,一串字符);或 fprintf(文件指針名,格式控制字符串, 輸出項(xiàng)表);歸納分析動(dòng)手練習(xí)6-1編寫程序,從鍵盤輸入3個(gè)學(xué)生的信息(包括學(xué)號(hào),姓名,性別,成績),并存入d盤c文件夾中的“stu.txt”文件中。P200編寫程序,向練習(xí)6-1中已建立的“stu.txt”文件中添加2個(gè)新的學(xué)生信息,信息從鍵盤輸入。6-26.3.2從已有的文本文件中讀數(shù)據(jù)P200在日常生活中經(jīng)常需要訪問已有文件中的數(shù)據(jù)做相應(yīng)處理,如分析測量數(shù)據(jù)、統(tǒng)計(jì)學(xué)生成績等。在C語言中可以用fscanf函數(shù)從文本文件中讀取數(shù)據(jù)。問題的提出【實(shí)例6-5】編寫程序,從實(shí)例6-2建立的文件“f2.txt”中讀取所有
10、題目和答案,并顯示在屏幕上。任務(wù)與分析6.3.2從已有的文本文件中讀數(shù)據(jù)P200操作步驟#include #include main() 定義整型變量a、b、c、k和i 定義文件指針fp 打開d盤c文件夾中的“f2.txt”文件 從“f2.txt”文件中讀取題目和答案 將題目和答案顯示在屏幕上 關(guān)閉文件int a,b,c,k,i;FILE *fp;if(fp=NULL) fp=fopen(d:cf2.txt,r);for(i=1; i=3; i+) fscanf(fp,(%d) %d+%d=%dn, &k,&a,&b,&c); printf(-%d- %d+%d=%dn, k,a,b,c);f
11、close(fp);【實(shí)例6-6】編寫程序,從實(shí)例6-3建立的文件“f3.txt”中讀取所有內(nèi)容,并顯示在屏幕上。P201操作步驟#include #include struct list 定義存放中文單詞的成員 定義存放英文單詞的成員; char cn10;char en10;操作步驟main() 定義循環(huán)變量i 定義名為list的結(jié)構(gòu)體類型變量w 定義文件指針fp 打開d盤c文件夾中的“f3.txt”文件 從“f3.txt”文件中讀取單詞 將單詞顯示在屏幕上 關(guān)閉文件int i;struct list w;FILE *fp;if(fp=NULL) fp=fopen(d:cf3.txt,r)
12、;for(i=1; i=5; i+) fscanf(fp,%15s%15sn, w,w.en); printf(%15s%15sn, w,w.en);fclose(fp);對(duì)于長度不定的文件 while(feof(fp)=0) 【實(shí)例6-7】編寫程序,輸入英文或中文單詞,根據(jù)英漢對(duì)照表文件“f3.txt”,在屏幕上顯示對(duì)應(yīng)的單詞。P203操作步驟#include #include #include struct list 定義存放中文單詞的成員 定義存放英文單詞的成員; char cn10;char en10;操作步驟main() 定義名為list的結(jié)構(gòu)體類型變量w 定義文件指針fp 定義標(biāo)志
13、變量s.flag 定義字符串變量str 打開d盤c文件夾中的“f3.txt”文件 struct list w;FILE *fp;int s,flag=0;char str20;fp=fopen(d:cf3.txt,r);if(fp=NULL) printf(Can not open the file.n); exit(0);操作步驟選擇是英漢還是漢英?輸入待查找的單詞printf(請(qǐng)選擇:n英漢-1n漢英-2n);scanf(%d,&s);if(s=1) printf(請(qǐng)輸入要查找的英文單詞:n); scanf(%s,str);else if(s=2) printf(請(qǐng)輸入要查找的中文:n);
14、 scanf(%s,str);操作步驟 在“f3.txt”文件中查找對(duì)應(yīng)單詞 輸出查找結(jié)果while(feof(fp)=0) fscanf(fp,%15s%15sn,w,w.en); if(s=1 & strcmp(str,w.en)=0) flag=1; printf(%s: %sn,w.en,w); break; if(s=2 & strcmp(str,w)=0) flag=1; printf(%s: %sn,w,w.en); break; if(flag=0)printf(沒有查找到對(duì)應(yīng)的單詞);操作步驟 關(guān)閉文件 fclose(fp);【實(shí)例6-8】用Windows中的記事本建立2個(gè)文
15、件“f4.txt”和“f5.txt”,并編寫程序,將文件“f5.txt”中的數(shù)據(jù)合并到“f4.txt”文件中。P205操作步驟用記事本在d盤c文件夾下建立文件“f4.txt”和“f5.txt”,文件中存放漢英對(duì)照表。 操作步驟#include #include struct list 定義存放中文單詞的成員 定義存放英文單詞的成員; char cn10;char en10;操作步驟main() 定義名為list的結(jié)構(gòu)體類型變量w 定義文件指針fp1,fp2 打開d盤c文件夾中的“f4.txt”文件 打開d盤c文件夾中的“f5.txt”文件struct list w;FILE *fp1,*fp2
16、;fp1=fopen(d:cf4.txt,a);if(fp1=NULL) printf(Can not open the file.n); exit(0);fp2=fopen(d:cf5.txt,r);if(fp2=NULL) printf(Can not open the file.n); exit(0);操作步驟 從“f5.txt”文件中讀取數(shù)據(jù) 將數(shù)據(jù)追加到“f4.txt”文件 關(guān)閉兩個(gè)文件while(feof(fp2)=0)fscanf(fp2,%10s%15sn,w,w.en); fprintf(fp1,%10s%15sn,w,w.en);fclose(fp1);fclose(fp2
17、); fscanf函數(shù)的一般形式: fscanf (文件指針名,格式控制字符串, 輸入項(xiàng)表); 歸納分析讀取文件中所有數(shù)據(jù): while(feof(文件指針)=0) 讀數(shù)據(jù) 動(dòng)手練習(xí)6-3編寫程序,輸入學(xué)號(hào),從練習(xí)6-1已建立的“stu.txt”文件中查找對(duì)應(yīng)的學(xué)生(若“stu.txt”文件不存在,先建立),并輸出該學(xué)生的全部信息(包括學(xué)號(hào),姓名,性別,成績)。P207動(dòng)手練習(xí)6-4P207用Windows中的記事本建立1個(gè)文件“stu1.txt”,文件中存儲(chǔ)新入學(xué)的學(xué)生信息,與“stu.txt”文件格式一致。編寫程序,將文件“stu1.txt”中的數(shù)據(jù)合并到“stu.txt”中。6.3.3文
18、本文件中對(duì)數(shù)據(jù)的讀寫操作P207在日常生活中經(jīng)常需要讀取已有文件中的數(shù)據(jù)進(jìn)行處理,然后再存入文件中。如對(duì)學(xué)生成績排序、考試系統(tǒng)等。在C語言中,需要綜合運(yùn)用函數(shù)fscanf、fprintf以及feof等。問題的提出【實(shí)例6-9】編寫程序,從實(shí)例6-2建立的文件“f2.txt”中修改第1題的錯(cuò)誤答案。任務(wù)與分析6.3.3文本文件中對(duì)數(shù)據(jù)的讀寫操作P207操作步驟#include #include main() 定義整型數(shù)組a、b、c、k 定義循環(huán)控制變量i、j 定義文件指針fp 打開d盤c文件夾中的“f2.txt”文件int a50,b50,c50,k50,i,j;FILE *fp;fp=fope
19、n(d:cf2.txt,r);if(fp=NULL) printf(Can not open the file.n); exit(0);操作步驟從“f2.txt”文件中讀取數(shù)據(jù)到數(shù)組a、b、c、k中關(guān)閉文件修改第1題答案i=0;while(feof(fp)=0) fscanf(fp,(%d) %d+%d=%dn, &ki,&ai,&bi,&ci); i+;fclose(fp);printf(-%d- %d+%d=n, k0,a0,b0);printf(請(qǐng)輸入正確答案:);scanf(%d,&c0);操作步驟 重新打開“f2.txt”文件 將修改后的新數(shù)據(jù)寫入該文件 關(guān)閉文件fp=fopen(d:cf2.txt,w);if(fp=NULL) printf(Can not open the file.n); exit(0);for(j=0; ji; j+) fprintf(fp,(%d) %d+%d=%dn, kj,aj,bj,cj);printf(修改完畢n);fclose(fp) 0)【實(shí)例6-10】編寫程序,將已建立好的文件“f2.txt”中數(shù)據(jù)全部復(fù)制到新文件“f2_new.txt”中。P209操作步驟#include #include main() 定義整型變量a、b、c、k 定義文件指針fp1、fp2 打開d盤c文件夾中“f2.txt”、“f2_new.txt” 從
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中介鋪面出售合同范本
- 2025年度進(jìn)口建筑材料采購合同
- 2025年度公司合同管理培訓(xùn)與咨詢服務(wù)合同
- 公廁改造施工合同范本
- 倆人合伙協(xié)議合同范例
- 關(guān)于編制太陽能光伏發(fā)電項(xiàng)目可行性研究報(bào)告
- 上海金山貨車租賃合同范例
- 關(guān)于圍巾合同范本
- 醫(yī)務(wù)人員合同范例
- 2025年度職業(yè)教育中心實(shí)訓(xùn)設(shè)備更新合同
- 超長結(jié)構(gòu)及大體積混凝土專項(xiàng)施工方案
- 送達(dá)地址確認(rèn)書(樣本)
- 超前小導(dǎo)管施工作業(yè)指導(dǎo)書
- 中國律師學(xué)完整版課件全套教學(xué)ppt教程
- 守紀(jì)律講衛(wèi)生懂禮儀
- 腦控受害者解救方法
- 滁州市城市規(guī)劃管理技術(shù)規(guī)定
- 保理業(yè)務(wù)解決方案
- 圖紙會(huì)審答疑
- PCCP安裝與水壓試驗(yàn)
- 景觀生態(tài)學(xué)教學(xué)大綱(共10頁)
評(píng)論
0/150
提交評(píng)論