《二級(jí)C語(yǔ)言程序設(shè)計(jì)》第11章文件_第1頁(yè)
《二級(jí)C語(yǔ)言程序設(shè)計(jì)》第11章文件_第2頁(yè)
《二級(jí)C語(yǔ)言程序設(shè)計(jì)》第11章文件_第3頁(yè)
《二級(jí)C語(yǔ)言程序設(shè)計(jì)》第11章文件_第4頁(yè)
《二級(jí)C語(yǔ)言程序設(shè)計(jì)》第11章文件_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 11.1 文件的基本概念文件的基本概念 1文件的概念文件的概念 文件是存儲(chǔ)在外部存儲(chǔ)介質(zhì)上的信息的集合,每文件是存儲(chǔ)在外部存儲(chǔ)介質(zhì)上的信息的集合,每 個(gè)文件用惟一的文件名(主文件名個(gè)文件用惟一的文件名(主文件名. . 后綴)來(lái)標(biāo)識(shí),后綴)來(lái)標(biāo)識(shí), 計(jì)算機(jī)按名對(duì)文件進(jìn)行讀、寫(xiě)等有關(guān)操作。計(jì)算機(jī)按名對(duì)文件進(jìn)行讀、寫(xiě)等有關(guān)操作。 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 11.1 文件的基本概念文件的基本概念 1文件的概念文件的概念 2文件的分類(lèi)文件的分類(lèi) (1)按數(shù)據(jù)的存儲(chǔ)形式分類(lèi))按數(shù)據(jù)的存儲(chǔ)形式分類(lèi): 文本文件文本文件、

2、 二進(jìn)制文件二進(jìn)制文件 文本文件:是將構(gòu)成文件的每個(gè)字符用一個(gè)文本文件:是將構(gòu)成文件的每個(gè)字符用一個(gè) ASCIIASCII碼來(lái)存碼來(lái)存 儲(chǔ),一個(gè)字符占一個(gè)字節(jié)。儲(chǔ),一個(gè)字符占一個(gè)字節(jié)。 例例1 1:采用文本文件方式存儲(chǔ)整數(shù):采用文本文件方式存儲(chǔ)整數(shù)238238,存儲(chǔ)形式如下:,存儲(chǔ)形式如下: 字符字符22的的ASCIIASCII碼碼字符字符33的的ASCIIASCII碼碼 字符字符88的的ASCIIASCII碼碼 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 11.1 文件的基本概念文件的基本概念 1文件的概念文件的概念 2文件的分類(lèi)文件的分類(lèi) (1)按數(shù)據(jù)的存儲(chǔ)形式分類(lèi))按數(shù)據(jù)的

3、存儲(chǔ)形式分類(lèi): 文本文件文本文件、 二進(jìn)制文件二進(jìn)制文件 二進(jìn)制文件:是按數(shù)據(jù)在內(nèi)存中的二進(jìn)制碼存儲(chǔ)形式來(lái)存儲(chǔ)。二進(jìn)制文件:是按數(shù)據(jù)在內(nèi)存中的二進(jìn)制碼存儲(chǔ)形式來(lái)存儲(chǔ)。 例例2 2:采用二進(jìn)制文件方式存儲(chǔ)整數(shù):采用二進(jìn)制文件方式存儲(chǔ)整數(shù)238238,存儲(chǔ)形式如下:,存儲(chǔ)形式如下: 整數(shù)整數(shù)238238的二進(jìn)制碼(占的二進(jìn)制碼(占2 2個(gè)字節(jié))個(gè)字節(jié)) 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 11.1 文件的基本概念文件的基本概念 1文件的概念文件的概念 2文件的分類(lèi)文件的分類(lèi) (1)按數(shù)據(jù)的存儲(chǔ)形式分類(lèi))按數(shù)據(jù)的存儲(chǔ)形式分類(lèi):文本文件文本文件、 二進(jìn)制文件二進(jìn)制文件 (2)按文

4、件的處理方式分類(lèi):緩沖文件系統(tǒng)、非緩沖文件系統(tǒng))按文件的處理方式分類(lèi):緩沖文件系統(tǒng)、非緩沖文件系統(tǒng) 輸出文件緩沖區(qū)輸出文件緩沖區(qū) 輸入輸入 輸出輸出 輸入文件緩沖區(qū)輸入文件緩沖區(qū) 輸入輸入 輸出輸出 磁盤(pán)磁盤(pán) 程序數(shù)據(jù)區(qū)程序數(shù)據(jù)區(qū) 內(nèi)存內(nèi)存 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 11.1 文件的基本概念文件的基本概念 1文件的概念文件的概念 2文件的分類(lèi)文件的分類(lèi) 3文件的存取方式文件的存取方式 順序存?。簩?duì)文件的讀寫(xiě)操作只能按順序進(jìn)行。即每當(dāng)順序存?。簩?duì)文件的讀寫(xiě)操作只能按順序進(jìn)行。即每當(dāng) “打開(kāi)打開(kāi)”這類(lèi)文件進(jìn)行讀或?qū)懖僮鲿r(shí),總是從文件的這類(lèi)文件進(jìn)行讀或?qū)懖僮鲿r(shí),總是從

5、文件的 開(kāi)頭開(kāi)始,從頭到尾順序進(jìn)行讀或?qū)?,要讀或?qū)懙陂_(kāi)頭開(kāi)始,從頭到尾順序進(jìn)行讀或?qū)?,要讀或?qū)懙趎 個(gè)字節(jié)時(shí),先要讀或?qū)懬皞€(gè)字節(jié)時(shí),先要讀或?qū)懬皀-1個(gè)字節(jié)。個(gè)字節(jié)。 隨機(jī)存取:對(duì)文件的讀寫(xiě)操作可按指定的字節(jié)號(hào)進(jìn)行。隨機(jī)存?。簩?duì)文件的讀寫(xiě)操作可按指定的字節(jié)號(hào)進(jìn)行。 即可以通過(guò)調(diào)用庫(kù)函數(shù)去指定開(kāi)始讀或?qū)懙淖止?jié)號(hào),即可以通過(guò)調(diào)用庫(kù)函數(shù)去指定開(kāi)始讀或?qū)懙淖止?jié)號(hào), 然后直接對(duì)該位置上的數(shù)據(jù)進(jìn)行讀或?qū)懖僮?。然后直接?duì)該位置上的數(shù)據(jù)進(jìn)行讀或?qū)懖僮鳌?二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 11.1 文件的基本概念文件的基本概念 1文件的概念文件的概念 2文件的分類(lèi)文件的分類(lèi) 3文件的存取

6、方式文件的存取方式 4文件類(lèi)型的指針文件類(lèi)型的指針 文件指針的定義形式如下:文件指針的定義形式如下: FILE FILE * *標(biāo)識(shí)符標(biāo)識(shí)符; ; 其中,標(biāo)識(shí)符是一個(gè)指向其中,標(biāo)識(shí)符是一個(gè)指向FILEFILE類(lèi)型結(jié)構(gòu)體的指針變量名類(lèi)型結(jié)構(gòu)體的指針變量名 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 11.1 文件的基本概念文件的基本概念 11.2 文件的基本操作文件的基本操作 文件操作一般有如下四個(gè)基本步驟:文件操作一般有如下四個(gè)基本步驟: (1 1)定義文件指針。)定義文件指針。 (2 2)打開(kāi)文件。)打開(kāi)文件。 (3 3)對(duì)文件進(jìn)行讀或?qū)懖僮?。)?duì)文件進(jìn)行讀或?qū)懖僮鳌?(4 4

7、)關(guān)閉文件。)關(guān)閉文件。 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 11.1 文件的基本概念文件的基本概念 11.2 文件的基本操作文件的基本操作 11.2.1 11.2.1 文件的打開(kāi)與關(guān)閉文件的打開(kāi)與關(guān)閉 1 1文件的打開(kāi)文件的打開(kāi) 調(diào)用庫(kù)函數(shù)調(diào)用庫(kù)函數(shù)fopen()fopen()的一般形式為:的一般形式為: FILE FILE * *標(biāo)識(shí)符標(biāo)識(shí)符; ; 標(biāo)識(shí)符標(biāo)識(shí)符= fopen(= fopen(文件名,文件使用方式文件名,文件使用方式);); 例如:例如:FILE FILE * *fp;fp; fp= fopen(DT.dat,r); fp= fopen(DT.dat,

8、r); 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 文件使用方式文件使用方式含含 義義 r(只讀)(只讀)為輸入打開(kāi)一個(gè)文本文件為輸入打開(kāi)一個(gè)文本文件 w(只寫(xiě))(只寫(xiě))為輸出打開(kāi)一個(gè)文本文件為輸出打開(kāi)一個(gè)文本文件 a(追加)(追加)向文本文件末尾添加數(shù)據(jù)向文本文件末尾添加數(shù)據(jù) r b(只讀)(只讀)為輸入打開(kāi)一個(gè)二進(jìn)制文件為輸入打開(kāi)一個(gè)二進(jìn)制文件 wb(只寫(xiě))(只寫(xiě))為輸出打開(kāi)一個(gè)二進(jìn)制文件為輸出打開(kāi)一個(gè)二進(jìn)制文件 ab(追加)(追加)向二進(jìn)制文件末尾添加數(shù)據(jù)向二進(jìn)制文件末尾添加數(shù)據(jù) r+(讀寫(xiě))(讀寫(xiě))為讀為讀/寫(xiě)打開(kāi)一個(gè)文本文件寫(xiě)打開(kāi)一個(gè)文本文件 w+(讀寫(xiě))(讀寫(xiě))為讀為

9、讀/寫(xiě)建立一個(gè)新的文本文件寫(xiě)建立一個(gè)新的文本文件 a+(讀寫(xiě))(讀寫(xiě))為讀為讀/寫(xiě)打開(kāi)一個(gè)文本文件寫(xiě)打開(kāi)一個(gè)文本文件 rb+(讀寫(xiě))(讀寫(xiě))為讀為讀/寫(xiě)打開(kāi)一個(gè)二進(jìn)制文件寫(xiě)打開(kāi)一個(gè)二進(jìn)制文件 wb+(讀寫(xiě))(讀寫(xiě))為讀為讀/寫(xiě)建立一個(gè)新的二進(jìn)制文件寫(xiě)建立一個(gè)新的二進(jìn)制文件 ab+(讀寫(xiě))(讀寫(xiě))為讀為讀/寫(xiě)打開(kāi)一個(gè)二進(jìn)制文件寫(xiě)打開(kāi)一個(gè)二進(jìn)制文件 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 11.1 文件的基本概念文件的基本概念 11.2 文件的基本操作文件的基本操作 11.2.1 11.2.1 文件的打開(kāi)與關(guān)閉文件的打開(kāi)與關(guān)閉 1 1文件的打開(kāi)文件的打開(kāi) 2 2文件的關(guān)閉文件的關(guān)

10、閉 調(diào)用庫(kù)函數(shù)調(diào)用庫(kù)函數(shù)fclose()fclose()的一般形式為:的一般形式為: fclose(fclose(標(biāo)識(shí)符標(biāo)識(shí)符);); 例如:例如:FILE FILE * *fp;fp; fp= fopen(DT.dat,r); fp= fopen(DT.dat,r); fclose(fp); fclose(fp); 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 11.1 文件的基本概念文件的基本概念 11.2 文件的基本操作文件的基本操作 11.2.1 11.2.1 文件的打開(kāi)與關(guān)閉文件的打開(kāi)與關(guān)閉 11.2.2 11.2.2 文件的讀寫(xiě)文件的讀寫(xiě) 1 1字符讀寫(xiě)函數(shù)字符讀寫(xiě)函數(shù)

11、 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 函數(shù)調(diào)用格式:函數(shù)調(diào)用格式: ch=fgetc(fp);ch=fgetc(fp); 其中,其中,chch是字符型變量,是字符型變量,fpfp是文件指針。是文件指針。 函數(shù)功能:從文件指針函數(shù)功能:從文件指針fpfp指向的文件當(dāng)前位置(位指向的文件當(dāng)前位置(位 置指針)讀出一個(gè)字符,然后文件位置指針自動(dòng)置指針)讀出一個(gè)字符,然后文件位置指針自動(dòng) 后移,指向文件中的下一個(gè)字符,返回值為讀入后移,指向文件中的下一個(gè)字符,返回值為讀入 的字符。若遇到文件結(jié)束符,則返回結(jié)束符的字符。若遇到文件結(jié)束符,則返回結(jié)束符EOFEOF (值為(值為-1-

12、1)。文件指針)。文件指針fpfp指向的文件必須已經(jīng)以指向的文件必須已經(jīng)以 讀的方式打開(kāi)。讀的方式打開(kāi)。 (1)字符輸入函數(shù))字符輸入函數(shù)fgetc()。 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 (1)字符輸入函數(shù))字符輸入函數(shù)fgetc()。 例例11.1 11.1 將磁盤(pán)文件將磁盤(pán)文件mymy的信息讀出并顯示到屏幕上(假設(shè)文的信息讀出并顯示到屏幕上(假設(shè)文 件已經(jīng)存在)。件已經(jīng)存在)。 #include #include main() main() FILE FILE * *fp; fp; char ch; char ch; if (fp=fopen(my , r)=NU

13、LL) if (fp=fopen(my , r)=NULL) printf(n exist!); printf(n exist!); exit(0); exit(0); while(ch=fgetc(fp)!=EOF) while(ch=fgetc(fp)!=EOF) putchar( ch ); putchar( ch ); fclose(fp); fclose(fp); 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 (1)字符輸入函數(shù))字符輸入函數(shù)fgetc()。 (2)字符輸出函數(shù))字符輸出函數(shù)fputc()。 函數(shù)調(diào)用格式:函數(shù)調(diào)用格式: fputc(ch,fp);fput

14、c(ch,fp); 其中,其中,chch是字符型數(shù)據(jù),是字符型數(shù)據(jù),fpfp是文件指針。是文件指針。 函數(shù)功能:把一個(gè)字符函數(shù)功能:把一個(gè)字符chch寫(xiě)到文件指針寫(xiě)到文件指針fpfp指向的磁盤(pán)文指向的磁盤(pán)文 件上去。輸出成功,返回輸出的字符;輸出失敗,返件上去。輸出成功,返回輸出的字符;輸出失敗,返 回一個(gè)回一個(gè)EOFEOF(值為(值為-1-1)。)。 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 (1)字符輸入函數(shù))字符輸入函數(shù)fgetc()。 (2)字符輸出函數(shù))字符輸出函數(shù)fputc()。 例例11.2 11.2 從鍵盤(pán)輸入一串字符存到一個(gè)磁盤(pán)文件從鍵盤(pán)輸入一串字符存到一個(gè)磁

15、盤(pán)文件mymy中,以中,以“#”#” 結(jié)束。結(jié)束。 #include #include main() main() FILE FILE * *fp; fp; char ch; char ch; if (fp=fopen(my , w )=NULL) if (fp=fopen(my , w )=NULL) printf( n open! ); printf( n open! ); exit(0); exit(0); while(ch=getchar( )!=# ) while(ch=getchar( )!=# ) fputc ( ch,fp ); fputc ( ch,fp ); fclose(

16、fp); fclose(fp); 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 11.1 文件的基本概念文件的基本概念 11.2 文件的基本操作文件的基本操作 11.2.1 11.2.1 文件的打開(kāi)與關(guān)閉文件的打開(kāi)與關(guān)閉 11.2.2 11.2.2 文件的讀寫(xiě)文件的讀寫(xiě) 1 1字符讀寫(xiě)函數(shù)字符讀寫(xiě)函數(shù) 2 2字符串讀寫(xiě)函數(shù)字符串讀寫(xiě)函數(shù) 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 (1)字符串輸入函數(shù))字符串輸入函數(shù)fgets()。 函數(shù)調(diào)用格式:函數(shù)調(diào)用格式: fgets(str,n,fp);fgets(str,n,fp); 其中,其中,strstr是字符型指針或字

17、符型數(shù)組,是字符型指針或字符型數(shù)組,n n是整型數(shù)是整型數(shù) 據(jù),據(jù),fpfp是文件指針。是文件指針。 函數(shù)功能:從文件指針函數(shù)功能:從文件指針fpfp指向的文件中讀取指向的文件中讀取n-1n-1個(gè)個(gè) 字符,把它送到由字符,把它送到由strstr指向的字符數(shù)組中。字符指向的字符數(shù)組中。字符 數(shù)組的長(zhǎng)度應(yīng)大于數(shù)組的長(zhǎng)度應(yīng)大于n n,可存放,可存放n-1n-1個(gè)字符,字符數(shù)個(gè)字符,字符數(shù) 組的最后一個(gè)元素為組的最后一個(gè)元素為00。若在讀入。若在讀入n-1n-1個(gè)字符個(gè)字符 前遇到換行符前遇到換行符nn或文件結(jié)束符號(hào)或文件結(jié)束符號(hào)EOFEOF,立即結(jié),立即結(jié) 束讀入操作。束讀入操作。 二級(jí)C語(yǔ)言程序設(shè)

18、計(jì)第11章文 件 第第11章章 文件文件 (1)字符串輸入函數(shù))字符串輸入函數(shù)fgets()。 例例11.3 11.3 利用字符串輸入函數(shù)利用字符串輸入函數(shù)fgets()fgets()將磁盤(pán)文件將磁盤(pán)文件mymy的信息讀的信息讀 出并顯示到屏幕上(假設(shè)文件已經(jīng)存在)。出并顯示到屏幕上(假設(shè)文件已經(jīng)存在)。 #include#include main()main() FILE FILE * *fp; fp; char str81; char str81; if(fp=fopen(my,r)=NULL) if(fp=fopen(my,r)=NULL) printf(Cannot open file

19、!); printf(Cannot open file!); exit(0); exit(0); while(fgets(str,81,fp)!=NULL) while(fgets(str,81,fp)!=NULL) puts(str); puts(str); fclose(fp); fclose(fp); 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 (1)字符串輸入函數(shù))字符串輸入函數(shù)fgets()。 (2 2)字符串輸出函數(shù))字符串輸出函數(shù)fputs()fputs()。 函數(shù)調(diào)用格式:函數(shù)調(diào)用格式: fputs(str,fp);fputs(str,fp); 其中,其中,str

20、str是字符型指針或字符型數(shù)組或字符串常量,是字符型指針或字符型數(shù)組或字符串常量, fpfp是文件指針。是文件指針。 函數(shù)功能:把字符串函數(shù)功能:把字符串strstr寫(xiě)入由文件指針寫(xiě)入由文件指針 fpfp指向的文件指向的文件 中。輸出成功,返回中。輸出成功,返回0 0;輸出失敗,返回非;輸出失敗,返回非0 0。 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 (1)字符串輸入函數(shù))字符串輸入函數(shù)fgets()。 (2 2)字符串輸出函數(shù))字符串輸出函數(shù)fputs()fputs()。 例例11.4 11.4 從鍵盤(pán)輸入若干行字符存到一個(gè)磁盤(pán)文件從鍵盤(pán)輸入若干行字符存到一個(gè)磁盤(pán)文件mym

21、y中。中。 #include #include main()main() FILE FILE * *fp; fp; char str 81; char str 81; if( (fp=fopen(my, w ) = =NULL) if( (fp=fopen(my, w ) = =NULL) printf( open! ); printf( open! ); exit(0); exit(0); while (fgets(str,81,stdin)!=NULL ) while (fgets(str,81,stdin)!=NULL ) fputs(str,fp); fputs(str,fp); fc

22、lose(fp); fclose(fp); 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 11.1 文件的基本概念文件的基本概念 11.2 文件的基本操作文件的基本操作 11.2.1 11.2.1 文件的打開(kāi)與關(guān)閉文件的打開(kāi)與關(guān)閉 11.2.2 11.2.2 文件的讀寫(xiě)文件的讀寫(xiě) 1 1字符讀寫(xiě)函數(shù)字符讀寫(xiě)函數(shù) 2 2字符串讀寫(xiě)函數(shù)字符串讀寫(xiě)函數(shù) 3 3格式化讀寫(xiě)函數(shù)格式化讀寫(xiě)函數(shù) 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 (1 1)格式化輸入函數(shù))格式化輸入函數(shù)fscanf()fscanf() 函數(shù)調(diào)用格式:函數(shù)調(diào)用格式: fscanf(文件指針文件指針,格式字符

23、串格式字符串,輸入表列輸入表列); 函數(shù)功能:從函數(shù)功能:從“文件指針文件指針”指定的文件中按指定的文件中按“格式字格式字 符串符串”指定格式輸入數(shù)據(jù)給指定格式輸入數(shù)據(jù)給“輸入表列輸入表列”給出的變給出的變 量。返回實(shí)際被賦值參數(shù)的個(gè)數(shù)。量。返回實(shí)際被賦值參數(shù)的個(gè)數(shù)。 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 (1 1)格式化輸入函數(shù))格式化輸入函數(shù)fscanf()fscanf() 例例11.5 11.5 按指定的格式,從文件按指定的格式,從文件student. datstudent. dat中將學(xué)生信息讀中將學(xué)生信息讀 出并顯示在屏幕上。出并顯示在屏幕上。 #include#

24、include main()main() FILE FILE * *fp;fp; int i; int i; if(fp=fopen(student.dat,r)=NULL) if(fp=fopen(student.dat,r)=NULL) printf(Cannot open file! n); printf(Cannot open file! n); exit(0); exit(0); printf (output data:n ); printf (output data:n ); for(i=0;i5;i+) for(i=0;i5;i+) fscanf(fp,%d %s%c%d%s,

25、for(i=0;i5;i+,qq+) for(i=0;i5;i+,qq+) printf(%d %s%c%d%sn,ai.num,, printf(%d %s%c%d%sn,ai.num,, ai.sex,ai.age,ai.addr); ai.sex,ai.age,ai.addr); fclose(fp); fclose(fp); struct studentstruct student int num; int num; char name20; char name20; char sex; char sex; int age; int age; char ad

26、dr30; char addr30; a5; a5; 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 (1 1)格式化輸入函數(shù))格式化輸入函數(shù)fscanf()fscanf() (2 2)格式化輸出函數(shù))格式化輸出函數(shù)fprintf()fprintf() 函數(shù)調(diào)用格式:函數(shù)調(diào)用格式: fprintf(fprintf(文件指針文件指針, ,格式字符串格式字符串, ,輸出表列輸出表列);); 函數(shù)功能:按函數(shù)功能:按“格式字符串格式字符串”指定格式將指定格式將“輸出表列輸出表列”給給 出的數(shù)據(jù)項(xiàng)輸出到出的數(shù)據(jù)項(xiàng)輸出到“文件指針文件指針”指定的文件中。返回實(shí)際指定的文件中。返回實(shí)際 輸出數(shù)據(jù)

27、的個(gè)數(shù)。輸出數(shù)據(jù)的個(gè)數(shù)。 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 (1 1)格式化輸入函數(shù))格式化輸入函數(shù)fscanf()fscanf() (2 2)格式化輸出函數(shù))格式化輸出函數(shù)fprintf()fprintf() 例例11.6 11.6 按指定的格式,將學(xué)生信息寫(xiě)入到文件按指定的格式,將學(xué)生信息寫(xiě)入到文件student. datstudent. dat中。中。 #include#include main()main() FILE FILE * *fp;fp; int i,; int i,; if(fp=fopen(student.dat,w)=NULL) if(fp=fo

28、pen(student.dat,w)=NULL) printf(Cannot open file! n); printf(Cannot open file! n); exit(0); exit(0); printf (input data:n ); printf (input data:n ); for(i=0;i5;i+) for(i=0;i5;i+) scanf(%d %s%c%d%s, for(i=0;i5;i+,qq+) for(i=0;i5;i+,qq+) fprintf(fp, %d %s%c%d%s,ai.num, fprintf(fp, %d %s%c%d%s,a

29、i.num,, ai.sex,ai.age,ai.addr); ai.sex,ai.age,ai.addr); fclose(fp); fclose(fp); struct studentstruct student int num; int num; char name20; char name20; char sex; char sex; int age; int age; char addr30; char addr30; a5 ; a5 ; 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 11.1 文件的基本概念文件的基本概念 11.2 文件的基本操作文件的基本

30、操作 11.2.1 11.2.1 文件的打開(kāi)與關(guān)閉文件的打開(kāi)與關(guān)閉 11.2.2 11.2.2 文件的讀寫(xiě)文件的讀寫(xiě) 1 1字符讀寫(xiě)函數(shù)字符讀寫(xiě)函數(shù) 2 2字符串讀寫(xiě)函數(shù)字符串讀寫(xiě)函數(shù) 3 3格式化讀寫(xiě)函數(shù)格式化讀寫(xiě)函數(shù) 4 4數(shù)據(jù)塊讀寫(xiě)函數(shù)數(shù)據(jù)塊讀寫(xiě)函數(shù) 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 (1 1)數(shù)據(jù)塊輸入函數(shù))數(shù)據(jù)塊輸入函數(shù)fread()fread() 函數(shù)調(diào)用格式:函數(shù)調(diào)用格式: fread(buffer,size,count,fp);fread(buffer,size,count,fp); 其中,其中,bufferbuffer是一個(gè)指針,指向存放數(shù)據(jù)塊(數(shù)組)

31、的是一個(gè)指針,指向存放數(shù)據(jù)塊(數(shù)組)的 首地址,首地址,sizesize是輸入數(shù)據(jù)項(xiàng)的字節(jié)長(zhǎng)度,是輸入數(shù)據(jù)項(xiàng)的字節(jié)長(zhǎng)度,countcount是輸入是輸入 數(shù)據(jù)項(xiàng)的個(gè)數(shù),數(shù)據(jù)項(xiàng)的個(gè)數(shù),fpfp是文件指針。是文件指針。 函數(shù)功能:從文件指針函數(shù)功能:從文件指針fpfp指定的文件中輸入指定的文件中輸入countcount個(gè)字節(jié)個(gè)字節(jié) 為為sizesize的數(shù)據(jù),存放在的數(shù)據(jù),存放在bufferbuffer指向的數(shù)組中。指向的數(shù)組中。 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 (1 1)數(shù)據(jù)塊輸入函數(shù))數(shù)據(jù)塊輸入函數(shù)fread()fread() 例例11.7 11.7 利用數(shù)據(jù)塊輸入函

32、數(shù)利用數(shù)據(jù)塊輸入函數(shù)fread()fread()完成例完成例11.511.5。 #include#include main()main() FILE FILE * *fp;fp; int i; int i; int size; int size; size=sizeof(struct student); size=sizeof(struct student); if(fp=fopen(student.dat,r)=NULL) if(fp=fopen(student.dat,r)=NULL) printf(Cannot open file! n); printf(Cannot open file

33、! n); exit(0); exit(0); printf (output data:n ); printf (output data:n ); fread(a,size,5,fp); fread(a,size,5,fp); for(i=0;i5;i+,qq+) for(i=0;i5;i+,qq+) printf(%d %s%c%d%sn,ai.num, printf(%d %s%c%d%sn,ai.num,, ai.sex,ai.age,ai.addr); ai.sex,ai.age,ai.addr); fclose(fp); fclose(fp); struc

34、t studentstruct student int num; int num; char name20; char name20; char sex; char sex; int age; int age; char addr30; char addr30; a5 ; a5 ; 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 (1 1)數(shù)據(jù)塊輸入函數(shù))數(shù)據(jù)塊輸入函數(shù)fread()fread() (2 2)數(shù)據(jù)塊輸出函數(shù))數(shù)據(jù)塊輸出函數(shù)fwrite()fwrite() 函數(shù)調(diào)用格式:函數(shù)調(diào)用格式: fwrite(buffer,size,count,fp);fwrite(buffer

35、,size,count,fp); 其中,其中,bufferbuffer是一個(gè)指針,指向存放數(shù)據(jù)塊(數(shù)組)的首是一個(gè)指針,指向存放數(shù)據(jù)塊(數(shù)組)的首 地址,地址,sizesize是輸出數(shù)據(jù)項(xiàng)的字節(jié)長(zhǎng)度,是輸出數(shù)據(jù)項(xiàng)的字節(jié)長(zhǎng)度,countcount是輸出數(shù)據(jù)項(xiàng)是輸出數(shù)據(jù)項(xiàng) 的個(gè)數(shù),的個(gè)數(shù),fpfp是文件指針。是文件指針。 函數(shù)功能:從函數(shù)功能:從bufferbuffer指針?biāo)复鎯?chǔ)單元開(kāi)始,將指針?biāo)复鎯?chǔ)單元開(kāi)始,將countcount個(gè)字個(gè)字 節(jié)為節(jié)為sizesize的數(shù)據(jù)輸出到文件指針的數(shù)據(jù)輸出到文件指針fpfp指定的文件中。指定的文件中。 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件

36、文件 (1 1)數(shù)據(jù)塊輸入函數(shù))數(shù)據(jù)塊輸入函數(shù)fread()fread() struct studentstruct student int num; int num; char name20; char name20; char sex; char sex; int age; int age; char addr30; char addr30; a5 ; a5 ; 例例11.8 11.8 利用數(shù)據(jù)塊輸入函數(shù)利用數(shù)據(jù)塊輸入函數(shù)fwrite()fwrite()完成例完成例11.611.6。 #include#include main()main() FILE FILE * *fp;fp; int

37、 i; int i; int size; int size; size=sizeof(struct student); size=sizeof(struct student); if(fp=fopen(student.dat,w)=NULL) if(fp=fopen(student.dat,w)=NULL) printf(Cannot open file! n); printf(Cannot open file! n); exit(0); exit(0); printf (input data:n ); printf (input data:n ); for(i=0;i5;i+) for(i=

38、0;i5;i+) scanf(%d %s%c%d%s, fwrite(a,size,5,fp); fwrite(a,size,5,fp); fclose(fp); fclose(fp); (2 2)數(shù)據(jù)塊輸出函數(shù))數(shù)據(jù)塊輸出函數(shù)fwrite()fwrite() 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 11.1 文件的基本概念文件的基本概念 11.2 文件的基本操作文件的基本操作 11.2.1 11.2.1 文件的打開(kāi)與關(guān)閉文件的打開(kāi)與關(guān)閉 11.2.2 11.2.2 文件的讀寫(xiě)文件的讀寫(xiě) 1 1字符讀寫(xiě)函數(shù)字符讀寫(xiě)函數(shù) 2 2字符串讀寫(xiě)函數(shù)字符串讀寫(xiě)函數(shù) 3 3格式化讀寫(xiě)函數(shù)

39、格式化讀寫(xiě)函數(shù) 4 4數(shù)據(jù)塊讀寫(xiě)函數(shù)數(shù)據(jù)塊讀寫(xiě)函數(shù) 5 5判斷文件是否結(jié)束函數(shù)判斷文件是否結(jié)束函數(shù) 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 函數(shù)調(diào)用格式:函數(shù)調(diào)用格式: feof(fp);feof(fp); 其中,其中,fpfp是文件指針。是文件指針。 函數(shù)功能:判斷文件指針函數(shù)功能:判斷文件指針fpfp所指文件是否結(jié)束,如果遇到所指文件是否結(jié)束,如果遇到 文件結(jié)束,函數(shù)返回值為文件結(jié)束,函數(shù)返回值為1 1,否則,函數(shù)返回值為,否則,函數(shù)返回值為0 0。 二級(jí)C語(yǔ)言程序設(shè)計(jì)第11章文 件 第第11章章 文件文件 例例11.9 11.9 利用利用feof(fp)feof(fp)函數(shù)改寫(xiě)例函數(shù)改寫(xiě)例11

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論