版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第9章 文 件,9,內(nèi)容提要,本章主要介紹如何用C語言編譯系統(tǒng)提供的文件操作函數(shù) 建立和使用存儲(chǔ)在外部介質(zhì)上的數(shù)據(jù)文件,包括文本文件和二進(jìn)制文件的讀寫、順序文件和隨機(jī)文件的創(chuàng)建和使用。,文件概述,數(shù)據(jù)文件是程序設(shè)計(jì)中的一個(gè)重要概念,是實(shí)現(xiàn)程序和數(shù)據(jù)分離的重要方式。 1. 文件的邏輯結(jié)構(gòu) 2. 文件的存取方式 3. 文件操作的步驟,文件的打開與關(guān)閉,1. 文件指針 (1)定義文件指針的格式如下: FILE *fp1,*fp2; 這樣,fp1和fp2就成為文件指針,由fopen()函數(shù)可將它們指向指定的文件。 2. 打開文件 (1)打開文件要用庫函數(shù)fopen(),其調(diào)用的一般格式如下: FILE
2、 *fp; fp=fopen(fname,mode);,文件使用方式,關(guān)閉文件,文件操作完畢,應(yīng)用fclose()函數(shù)將文件關(guān)閉,以保證本次文件操作有效。調(diào)用格式為: fclose(fp);,文件的讀寫操作,一個(gè)文件打開后,就可以對該文件進(jìn)行讀寫。C語言用編譯系統(tǒng)提供的文件輸入、輸出函數(shù)實(shí)施文件的讀寫。這些輸入、輸出函數(shù)往往針對不同的數(shù)據(jù)對象,采用不同的數(shù)據(jù)格式。 文本文件讀寫函數(shù) 二進(jìn)制文件讀寫函數(shù),文件檢測函數(shù),文件檢測函數(shù)用來檢測文件指針是否已到文件末尾,或文件讀寫操作中是否出現(xiàn)錯(cuò)誤等情況,以便能正確地進(jìn)行文件的存取。,文件的順序存取和隨機(jī)存取,文件指針的定位對文件的讀寫至關(guān)重要,因?yàn)閷?/p>
3、文件的任何讀寫都是在文件指針當(dāng)前所指的位置上進(jìn)行的,移動(dòng)了文件指針直接影響到文件讀寫的位置。 1. 文件指針的定位 2. 文件的順序存取 3. 文件的隨機(jī)存取,本章總結(jié),本章應(yīng)重點(diǎn)掌握流式文件、文本文件和二進(jìn)制文件、順序文件和隨機(jī)文件的概念,文件操作的3個(gè)步驟,以及文件讀寫函數(shù)、文件指針定位函數(shù)在文件操作中的使用。 難點(diǎn)是如何組織文件的記錄,如何使用配對的文件讀寫函數(shù)存取文本文件和二進(jìn)制文件,以及如何組織和存取順序文件和隨機(jī)文件。,本章習(xí)題,一、選擇題 1. C語言文件的組成成分是_。 A. 記錄 B. 數(shù)據(jù)行 C. 數(shù)據(jù)塊 D. 字符(字節(jié))序列 2. C語言中,數(shù)據(jù)文件的存取方式為_。 A
4、. 只能順序存取 B. 只能隨機(jī)存取(也叫直接存?。?C. 可以順序存取和隨機(jī)存取 D. 只能從文件的開頭進(jìn)行存取 3. 在C語言中,用“a”方式打開一個(gè)已含有10個(gè)字符的文本文件,并寫入了5個(gè)新字符,則該文件中存放的字符是_。 A. 新寫入的5個(gè)字符 B. 新寫入的5個(gè)字符覆蓋原有字符中的前5個(gè)字符,保留原有的后5個(gè)字符 C. 原有的10個(gè)字符在前,新寫入的5個(gè)字符在后 D. 新寫入的5個(gè)字符在前,原有的10個(gè)字符在后,本章習(xí)題,4. 設(shè)已正確打開一個(gè)已存有數(shù)據(jù)的文本文件,文件中原有數(shù)據(jù)為abcdef,新寫入的數(shù)據(jù)為xyz,若文件中的數(shù)據(jù)變?yōu)閤yzdef,則該文件打開的方式是_。 A. w
5、B. w+ C. a+ D. r+ 5. 下面的程序執(zhí)行后,文件test.t中的內(nèi)容是_。 #include #include void fun( char *fname, char *st ) FILE *myf; int i; myf=fopen(fname,w); for (i=0;istrlen(st);i+) fputc(sti,myf); fclose(myf); main() fun(test.t,new world); fun(test.t,hello,); A. hello, B. new worldhello, C. new world D. hello,world,本章習(xí)
6、題,6. 以下程序?qū)⒁粋€(gè)名為 f1.dat 的文本文件的內(nèi)容追加到一個(gè)名為 f2.dat文件的末尾,請對程序空白處進(jìn)行正確的選擇。 #include main( ) char c; FILE *fp1,*fp2; fp1=fopen(f1.dat,r); fp2=fopen(f2.dat,a); while (c= ) != EOF) ; fclose(fp1); fclose(fp2); A. putc(c,fp2) B. getc(fp2) C. getc(fp1) D. putc(c,fp1) A. putc(c,fp1) B. getc(fp1) C. getc(fp2) D. put
7、c(c,fp2),本章習(xí)題,7. 下面的程序用來建立一個(gè)名為file.txt的文本文件,并將鍵盤輸入的10個(gè)字符(不含回車鍵)存入該文件。請對程序空白處選擇正確的答案。 #include main() FILE *fp; char c,ch; int i; fp= (file.txt,w); for (i=0;i10;i+) c=getchar(); ch=getchar(); fputc( ); fclose(fp); A. fgets B. fopen C. fclose D. fgetc A. c B. fp,c C. fp D. c,fp,本章習(xí)題,二、填空題 1. 以下程序由鍵盤輸入
8、一個(gè)文件名,然后把從鍵盤輸入的字符依次存放到該文件中,用#作為鍵盤輸入結(jié)束的標(biāo)志。請?zhí)羁铡?#include main() FILE *fp; char ch,fname10; printf(Input the name of file.n); gets(fname); if (fp= )=NULL) printf(Cannot open file.n); exit(0); printf(Enter datan); while (ch=getchar()!=#) fputc( ,fp); fclose(fp); ,本章習(xí)題,2. 以下程序中用戶由鍵盤輸入一個(gè)文件名,然后輸入一串字符(用#結(jié)束輸
9、入)存放到此文件中,形成文本文件,最后將字符的個(gè)數(shù)寫到文件的尾部。請?zhí)羁铡?#include FILE *fp; main() char ch, fname32; int count=0; printf(Input the filename:); scanf(%s,fname); if (fp=fopen( , w+)=NULL) printf(Cant open file: %sn,fname); exit(0); printf(Enter data:n); while (ch=getchar()!=#) fputc(ch,fp); count+; fprintf( ,%dn,count); fclose(fp) ,本章習(xí)題,三、編程題 1. 編制程序建立一個(gè)文本文件wb.txt,將下列字符串寫入該文件:London,Paris,Bon,Rome,Tokyo,Detroit,Moscow,Jerusalim,Bomgey,Beijing,Washington,要求每個(gè)字符串占11個(gè)字節(jié)。然后,讀取該文件的各個(gè)字符串,并在屏幕上顯示出來。 2. 編制程序建立一個(gè)學(xué)生四、六級(jí)英語考試成績的二進(jìn)制文件score.dat(未參加考試的成績標(biāo)記0)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年竹溪縣民政局關(guān)于公辦養(yǎng)老機(jī)構(gòu)招聘消防設(shè)施操作員的備考題庫及參考答案詳解1套
- 湖北中考?xì)v史三年(2023-2025)真題分類匯編專題06 綜合題(解析版)
- 2026年泰和縣人民法院公開招聘聘任制司法輔助人員備考題庫完整參考答案詳解
- 2025-2030中國膳食纖維行業(yè)運(yùn)行現(xiàn)狀及發(fā)展趨勢分析研究報(bào)告
- 2025至2030中國職業(yè)教育培訓(xùn)市場需求變化與商業(yè)模式分析報(bào)告
- 機(jī)關(guān)培訓(xùn)教學(xué)
- 2025至2030中國智能電網(wǎng)行業(yè)市場現(xiàn)狀供需分析及投資政策支持研究報(bào)告
- 智慧農(nóng)業(yè)技術(shù)推廣障礙及解決方案與投資可行性分析
- 2025-2030中醫(yī)藥產(chǎn)業(yè)發(fā)展特點(diǎn)分析與現(xiàn)代技術(shù)融合路徑探索及中藥材標(biāo)準(zhǔn)化體系建設(shè)研究
- 2026年昭通市永善縣緊密型醫(yī)共體溪洛渡街道衛(wèi)生院分院招聘9人備考題庫有答案詳解
- 石灰石購銷合同-石灰石購銷合同模板5篇
- 反制無人機(jī)課件
- 材料作文(原卷版)-2026年中考語文復(fù)習(xí)試題(浙江專用)
- 衰老標(biāo)志物人工智能數(shù)據(jù)模型建立應(yīng)用指南
- 2025至2030中國球囊膽管導(dǎo)管行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報(bào)告
- 生物樣本資源庫建設(shè)計(jì)劃及管理工作方案
- 消防安全管理人責(zé)任書范文
- 光伏電站安全事故案例
- 重癥肺炎患者護(hù)理要點(diǎn)回顧查房
- 住院醫(yī)師規(guī)范化培訓(xùn)階段考核(年度考核、出科考核)
- 學(xué)堂在線 雨課堂 學(xué)堂云 中國建筑史-元明清與民居 期末考試答案
評論
0/150
提交評論