c程序設(shè)計案例匯編課件09_第1頁
c程序設(shè)計案例匯編課件09_第2頁
c程序設(shè)計案例匯編課件09_第3頁
c程序設(shè)計案例匯編課件09_第4頁
c程序設(shè)計案例匯編課件09_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第九章文件學(xué)習(xí)目標(biāo)通過本章的學(xué)習(xí),你能夠?qū)W會(1)文本文件的打開與關(guān)閉;(2)文本文件的讀寫;(3)二進制文件的打開與關(guān)閉;本章內(nèi)容9.1C文件概述9.2文件的打開與關(guān)閉9.3文件的讀寫操作9.4文件的定位9.5文件出錯的檢測9.5本章總結(jié)9.6思考與練習(xí)9.1C文件概述案例9-1:建立文本文件,在文件中輸入一些文字,保存文件名為file,然后與程序文件放在同一目錄下。程序運行結(jié)果的輸出示例如圖9-1。1.案例9-1的源程序/*讀出文件file.txt中的字符*/#include"stdio.h"#include<stdlib.h>voidmain(){ charch;/*定義一個字符變量ch*/ FILE*fp;/*定義一個文件類型的指針變量fp*/

fp=fopen("file.txt","r");/*打開文本文件file*/

if(fp==NULL)/*打開文件失敗*/ {printf("cannotopenthisfile\n");exit(0); }

ch=fgetc(fp);/*讀出文件中的字符并賦予變量ch*/

while(ch!=EOF)/*判斷文件是否結(jié)束*/ {

putchar(ch);/*輸出從文件中讀出的字符*/

ch=fgetc(fp);/*讀出文件中的字符并賦予變量ch*/ }

fclose(fp);/*關(guān)閉文件*/}2.歸納分析C語言將文件看成是存儲在外部介質(zhì)中的字符集。根據(jù)數(shù)據(jù)在外部介質(zhì)中存儲的不同方式,C語言的文件又分為ASCII文件和二進制文件。ASCII文件:又稱為文本文件(text)文件,特點是數(shù)據(jù)在外部介質(zhì)中一個字節(jié)存放一個ASCII碼字符。二進制文件:是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲形式原樣輸出到外部介質(zhì)上存放。例:如果要存放整數(shù)12345,我們知道整數(shù)在內(nèi)存中是占兩個字節(jié)的,12345作為文本文件和作為二進制文件在內(nèi)存中存放有著較大的區(qū)別。(12345)10=(11000000111001)2從上面可以清楚的看到,以ASCII形式存放需要占用5個字節(jié),以二進制形式只需要二個字節(jié)。在C語言中對文件的存取是以字符(字節(jié))為單位的,輸入輸出數(shù)據(jù)的開始和結(jié)束僅受程序控制而不受物理符號(如回車換行符)控制。也就是說,在輸出時不會自動增加回車換行符以作為結(jié)束的標(biāo)志,輸入時不以回車換行符為記錄的間隔。我們把這種文件稱之為流式文件。C語言處理文件的方法是采用“緩沖文件系統(tǒng)”的方式。所謂緩沖文件的方式是指系統(tǒng)自動地在內(nèi)存區(qū)為每一個正在使用的文件開辟一個緩沖區(qū)。從內(nèi)存向磁盤輸出數(shù)據(jù)必須先送到內(nèi)存中的緩沖區(qū),裝滿緩沖區(qū)后才一起送到磁盤。如果從磁盤向內(nèi)存讀入數(shù)據(jù),則從磁盤文件中先將一批數(shù)據(jù)輸入到內(nèi)存緩沖區(qū),然后再從緩沖區(qū)逐個地將數(shù)據(jù)送到程序數(shù)據(jù)區(qū),如圖9-3所示。圖9-3C語言處理文件的方法示例9.2文件的打開與關(guān)閉案例9-2:利用C語言中文件的操作函數(shù)打開指定文件。程序運行結(jié)果的輸出示例如圖9-4。1.案例9-2的源程序#include"stdio.h"#include<stdlib.h>voidmain()FILE*fp;fp=fopen(“c:\\file.txt”,”r”);fclose(fp);}2.歸納分析本案例就是一個簡單的C語言打開文件,這是因為任何C語言的文件在使用(讀\寫)之前必須先“打開”該文件,在使用結(jié)束之后應(yīng)當(dāng)“關(guān)閉”該文件。1)文件的打開(fopen()函數(shù))

FILE*文件指針變量;文件指針變量=fopen(“文件名”,“文件使用方式”);fopen函數(shù)的作用是以指定的方式打開指定文件。如果文件打開成功,返回一個文件類型指針,如果文件打開失敗,則返回一個空指針NULL?!拔募敝敢蜷_文件的名稱。“文件使用方式”指文件的類型和操作要求。如下表所示:表9-1文件使用方式由于文件是獨立于程序之外不易被控制的,所以調(diào)用文件是程序中最易出錯的地方。打開文件也是如此,當(dāng)打開文件出錯時,函數(shù)fopen會返回一個空指針NULL,出錯原因可能是以“r”方式打開一個不存在的文件,或者是磁盤已滿等。一旦文件打開出錯,后邊的程序也將無法執(zhí)行,好的習(xí)慣是先檢查打開文件時是否出錯,如果有錯則提示給用戶,并終止程序的執(zhí)行,等用戶檢查出錯誤,修改后再運行該程序。所以通常打開文件的方法是:FILE*文件指針變量;

文件指針變量=fopen(“文件名”,“文件使用方式”);If(文件指針變量==NULL){printf(“cannotopenthisfile\n”);exit(0);}2)文件的關(guān)閉(fclose()函數(shù))在使用完一個文件后應(yīng)該即時關(guān)閉它,這是一個程序設(shè)計者應(yīng)養(yǎng)成的良好習(xí)慣。如果使用完沒有關(guān)閉文件,則不僅占用系統(tǒng)資源,還可能造成文件被破壞。關(guān)閉文件的函數(shù)是fclose(),其使用方法為:fclose(文件指針變量);fclose用來關(guān)閉文件指針變量所指向的文件。該函數(shù)如果調(diào)用成功,返回數(shù)值0,否則返回一個非零值。如:fclose(fp);關(guān)閉文件后,文件類型指針變量將不再指向和它所關(guān)聯(lián)的文件,此后不能再通過該指針對原來與其關(guān)聯(lián)的文件進行讀寫操作,除非再次打開該文件,使該指針變量重新指向該文件。9.3文件的讀寫操作案例9-3:單個字符的讀寫

從鍵盤上輸入一些字符,逐個把它們送到磁盤上去,直到輸入一個“#”為止。程序運行結(jié)果的輸出示例如圖9-5。1.案例9-3的源程序#include<stdlib.h>#include<stdio.h>voidmain(void){FILE*fp;charch,filename[10];

scanf("%s",filename);

if((fp=fopen(filename,"w"))==NULL){

printf("cannotopenfile\n"); exit(0);/*終止程序*/}

ch=getchar();/*接收執(zhí)行scanf語句時最后輸入的回車符*/

ch=getchar();/*接收輸入的第一個字符*/

while(ch!='#'){

fputc(ch,fp);putchar(ch);

ch=getchar();}

fclose(fp);}2.歸納分析文件打開之后,就可以對它進行讀寫了。通常C語言的文件讀寫函數(shù)是成對出現(xiàn)的,即有讀就有寫。1)讀字符函數(shù)fgetc()該函數(shù)的一般格式為:字符變量=fgetc(文件指針變量);函數(shù)fgetc的作用是從文件指針變量指向的文件中讀取一個字符。該函數(shù)如果調(diào)用成功,返回讀出的字符,文件結(jié)束或出錯時返回EOF(-1)。如:ch=fgetc(fp);其中,ch是字符變量,fp為文件指針變量,fgetc函數(shù)將從fp指向的文件中讀出一個字符并賦給變量ch。在fgetc()函數(shù)調(diào)用中,讀取的文件必須是以讀或讀寫方式打開。2)寫字符函數(shù)fputc()該函數(shù)的一般格式為:fputc(ch,文件指針變量);fputc函數(shù)的作用:是將ch所對應(yīng)的一個字符寫入到文件指針變量所指向的文件中去。ch是要寫入到文件中的字符,它可以是一個字符常量,也可以是一個字符變量。如果函數(shù)調(diào)用成功返回所寫字符的ASCII碼值,出錯時返回EOF。如:fputc(“a”,fp);其執(zhí)行結(jié)果是將字符a寫入到fp所指向的文件中。

案例9-4:字符串的輸入/輸出

使用fgets函數(shù)讀出文件file.txt中的文字。程序運行結(jié)果的輸出示例如圖9-6。1.案例9-4的源程序#include“stdio.h“#include”stdlib.h“main(){charch[50];/*定義一個字符數(shù)組*/FILE*fp;/*定義一個文件類型的指針變量fp*/

fp=fopen(”file.txt”,“r”);/*打開文本文件file*/

if(fp==NULL)/*打開文件失敗則退出*/{printf(“cannotopenthisfile\n”);exit(0);}fgets(ch,50,fp);/*讀出文件中的字符串*/

printf("%s",ch);

fclose(fp); }2.歸納分析本案例就是利用fget()函數(shù)實現(xiàn)對于字符串的讀寫操作。1)字符串輸入函數(shù)fgets()函數(shù)fgetc每次只能從文件中讀取一個字符,而函數(shù)fgets則用來讀取一個字符串。該函數(shù)的一般格式為:fgets(字符數(shù)組,n,文件指針變量);fgets函數(shù)的作用是從文件指針變量所指向的文件中讀取n-1個字符。如果在讀n-1個字符前遇到換行符或EOF標(biāo)記,則讀取結(jié)束。讀出的字符放到字符數(shù)組中,然后在末尾加一個字符串結(jié)束標(biāo)志“\0”。如果該函數(shù)調(diào)用成功,返回字符數(shù)組的首地址,失敗時返回NULL。注意:a.用fgets()函數(shù)讀取字符串時,遇到下列情況中任何一種,讀取字符串將結(jié)束:b.已讀取了n-1個字符;c.讀取到換行符;d.讀到文件末尾。

從文件中讀入一個字符串后,讀寫位置將后移到該字符串的下一個字符處。

2)寫字符串函數(shù)fputs()fputs函數(shù),該函數(shù)的一般格式為:fputs(字符串,文件指針變量);fputs函數(shù)的作用:將字符串寫入文件指針?biāo)赶虻奈募?。其中字符串可以是字符常量,也可以是字符?shù)組或指針變量。該函數(shù)調(diào)用成功時返回0,失敗時返回EOF。如:fputs(“student”,fp);執(zhí)行結(jié)果是將字符串“student”寫入到fp所指向的文件中。案例9-5:數(shù)據(jù)塊的讀寫從文件user.x中讀取用戶名和密碼。程序運行結(jié)果的輸出示例如圖9-7。1、源程序#include"stdio.h"#include<stdlib.h>

struct

userinfo/*定義結(jié)構(gòu)體*/{ charusername[10]; charpassword[12];}stu;voidmain(){FILE*fp;/*定義文件類型指針fp*/

fp=fopen(“user.x”,“rb”);/*以二進制只讀方式打開文件user.x*/

if(fp==NULL) {printf("cannotopenthisfile\n");exit(0); }fread(&stu,sizeof(userinfo),1,fp);/*讀出文件中的數(shù)據(jù)*/

printf("your

username:%s\n",stu.username);

printf("your

password:%s\n",stu.password);

fclose(fp);/*關(guān)閉文件*/}2.歸納分析本案例是利用字符串輸出函數(shù)fread()

實現(xiàn)對于指定文件中的內(nèi)容。其中:fread(buffer,size,count,文件指針變量),其中:buffer是讀入數(shù)據(jù)在內(nèi)存中的存放地址;size是要讀的數(shù)據(jù)塊的字節(jié)數(shù);count是要讀多少個size字節(jié)的數(shù)據(jù)項。

fread函數(shù)的作用是從文件指針變量指向的文件中讀count個長度為size的數(shù)據(jù)項到buffer所指的地址中。該函數(shù)如果調(diào)用成功返回實際讀入數(shù)據(jù)塊的個數(shù),如果讀入數(shù)據(jù)塊的個數(shù)小于要求的字節(jié)數(shù),說明讀到了文件尾或出錯?!景咐?-6】從鍵盤輸入三個學(xué)生的姓名,性別,年齡基本信息,存入文件student.stu中,然后再從文件中讀出所輸入的數(shù)據(jù)。程序運行結(jié)果的輸出示例如圖9-8。1.案例9-6的源程序:#include"stdio.h"#include<stdlib.h>

structstudent/*定義結(jié)構(gòu)體*/{charsname[8];/*姓名*/charssex[2];/*性別*/

intsage;/*年齡*/}stu1[3],stu2[3];

voidmain(){inti;FILE*fp;/*定義文件指針變量*/

fp=fopen("student.stu","wb");/*只寫方式打開文件*/

if(fp==NULL)/*打開失敗后退出*/{printf("寫文件打開失敗!");exit(0);}printf("三個學(xué)生的基本信息為(姓名,性別,年齡):\n");

for(i=0;i<3;i++){scanf("%s%s%d",&stu1[i].sname,&stu1[i].ssex,&stu1[i].sage);

} fwrite(&stu1,sizeof(student),3,fp);//把學(xué)生信息寫入文件

fclose(fp);/*關(guān)閉文件*/

fp=fopen("student.stu","rb");//以讀方式打開文件fwrite(&stu1,sizeof(student),3,fp);//把學(xué)生信息寫入文件

fclose(fp);/*關(guān)閉文件*/

fp=fopen("student.stu","rb");//以讀方式打開文件fread(&stu2,sizeof(student),3,fp);/*讀數(shù)據(jù)到數(shù)組變量*/

printf("您剛才輸入的數(shù)據(jù)為:\n");

for(i=0;i<3;i++){printf("%s%s%d\n",stu2[i].sname,stu2[i].ssex,stu2[i].sage);}

fclose(fp);/*關(guān)閉文件*/}2.歸納分析:程序首先定義用來表示學(xué)生信息的結(jié)構(gòu)體,然后以只寫方式打開文件student.stu,接下來等待用戶從鍵盤輸入三條信息,每輸入完一條信息,則往文件中寫入一條。程序中使用sizeof運算符計算出一條信息的字節(jié)數(shù)。程序后半部分以只讀方式打開文件,然后一次讀出三條信息。fwrite函數(shù)用來將一個數(shù)據(jù)塊寫入文件,該函數(shù)的一般格式為:fwrite(buffer,size,count,文件指針變量);fwrite函數(shù)的作用是從buffer所指的內(nèi)存區(qū)寫count個長度為size的數(shù)據(jù)項到文件指針變量指向的文件中。該函數(shù)如果調(diào)用成功返回實際寫入文件中數(shù)據(jù)塊的個數(shù),如果寫入數(shù)據(jù)塊的個數(shù)小于指定的字節(jié)數(shù),說明函數(shù)調(diào)用失敗。案例9-7:格式化的輸入輸出現(xiàn)設(shè)學(xué)生信息包括學(xué)號、三門課的單科成績和平均分,創(chuàng)建一個名為score.txt的文本文件,從鍵盤輸入數(shù)據(jù),當(dāng)學(xué)號為0時退出輸入,寫格式化數(shù)據(jù)到磁盤文件,然后顯示該格式化文件數(shù)據(jù)到屏幕上。程序運行結(jié)果的輸出示例如圖9-9。1.案例9-5的源程序#include<stdio.h>#include<stdlib.h>structstudent{charno[5];

intsco[3];floatave;};voidmain(){ FILE*fp;

inti;

structstudenta;

if((fp=fopen("score.txt","w"))==NULL){

printf("cannotopenthefile.\n");exit(0);}

printf("Inputno:");

scanf("%s",a.no);

getchar();

while(atoi(a.no)!=0)//atoi()將字符串轉(zhuǎn)變成整型數(shù)據(jù)

{

printf("Input3scores:");

for(i=0;i<3;i++) {

scanf("%d",&a.sco[i]);

getchar(); }

a.ave=(a.sco[0]+a.sco[1]+a.sco[2])/3.0;fprintf(fp,"%5s",a.no);

for(i=0;i<3;i++) fprintf(fp,"%4d",a.sco[i]);fprintf(fp,"%6.2f",a.ave);

printf("Inputno:");

scanf("%s",a.no);

getchar();}fclose(fp);

if((fp=fopen("score.txt","r"))==NULL){

printf("cannotopenthefile.\n");exit(0);}while(fscanf(fp,"%s%d%d%d%f",a.no,&a.sco[0],&a.sco[1],&a.sco[2],&a.ave)!=EOF) printf("%5s%4d%4d%4d%6.2f\n",a.no,a.sco[0],a.sco[1],a.sco[2],a.ave);

fclose(fp);}2.歸納分析本案例是利用格式化讀寫函數(shù)實現(xiàn)對于對于文件的操作,其中的格式化讀函數(shù)fscanf()和格式化寫文件函數(shù)fprintf()的說明如下:1)格式化讀文件函數(shù)fscanf()fscanf函數(shù)類似于scanf函數(shù),兩者都是格式化輸入函數(shù),不同的是scanf函數(shù)的作用對象是終端鍵盤,而fscanf函數(shù)的作用對象是文件。fscanf函數(shù)的一般格式為:fscanf(文件指針變量,“格式控制”,輸入列表);fscanf函數(shù)的作用是從文件指針變量指向的文件中按指定的格式讀取數(shù)據(jù)到輸入列表中的變量中。2)格式化寫文件函數(shù)fprintf()

fprintf函數(shù)類似于printf函數(shù),兩者都是格式化輸出函數(shù),只不過兩者的作用對象一個文件,一個是終端。fprintf函數(shù)的一般格式為:fprintf(文件指針,“格式控制”,輸出列表);fprintf函數(shù)的作用是將輸出項按指定的格式寫入到文件指針變量所指向的文件中。注意:

用fprintf和fscanf函數(shù)對文件讀寫使用方便,容易理解,但由于在輸入時要將ASCII碼轉(zhuǎn)換為二進制形式,在輸出時又要將二進制形式轉(zhuǎn)換成字符,花費時間較多,占用系統(tǒng)資源較大。因此在數(shù)據(jù)量較大的情況下,最好不用fprintf和fscanf函數(shù),而用fread和fwrite函數(shù)。從文件中讀入一個字符串后,讀寫位置將后移到該字符串的下一個字符處。

案例9-8:整數(shù)的讀寫操作從鍵盤輸入一個任意整數(shù),存放到文件file.txt中,然后再從該文件中讀出剛才輸入的整數(shù)。程序運行結(jié)果的輸出示例如圖9-10。1.案例9-8的源程序#include“stdio.h“#include<stdlib.h>voidmain(){int

x,num;FILE*fp;/*定義文件指針變量*/

fp=fopen(”file.txt”,“wb”);/*以只寫方式打開文件*/

printf(“請輸入一個整數(shù):”);

scanf(“%d”,&num);

putw(num,fp);/*寫入整數(shù)到文件中*/

fclose(fp);/*關(guān)閉文件*/

fp=fopen(“file.txt”,“rb”);/*以只讀方式打開文件*/x=getw(fp);/*從文件中讀出一個整數(shù)*/

printf(“\n剛才寫入文件的數(shù)據(jù)是:%d\n”,x);

fclose(fp);/*關(guān)閉文件*/}2.歸納分析本案例是利用格式化讀寫函數(shù)實現(xiàn)對于文件的操作,其中的讀整數(shù)函數(shù)getw()和寫整數(shù)函數(shù)putw()的說明如下:1)讀整數(shù)函數(shù)getw()getw函數(shù)同getc函數(shù)的用法類似,只不過getc函數(shù)用來讀取一個字符,getw函數(shù)用來讀取一個整數(shù)。getw函數(shù)的一般格式為:getw(文件指針變量);fprintf函數(shù)的作用是從文件指針變量所指向的文件中讀取一個整數(shù)。如果函數(shù)調(diào)用成功,返回讀取的整數(shù),出錯或文件結(jié)束時返回EOF。2)寫整數(shù)函數(shù)putw()

putw函數(shù)類似于putc函數(shù)。只不過前者寫入文件的是整數(shù),后者寫入文件的是一個字符,putw函數(shù)的一般格式為:putw(整數(shù),文件指針變量);putw函數(shù)的作用是寫一個整數(shù)到文件指針變量所指向的文件中。其中整數(shù)可以是整數(shù)常量,也可以是整數(shù)變量。如果函數(shù)調(diào)用成功,返回寫入的整數(shù),失敗時返回EOF。9.4文件的定位案例9-9:文件的定位只打開一次文件,寫入數(shù)據(jù)后調(diào)用文件頭定位函數(shù)使文件的位置指針指向文件頭,最后讀出寫入文件的數(shù)據(jù)。程序運行結(jié)果的輸出示例如圖9-11。1.案例9-9的源程序#include“stdio.h“#include<stdlib.h>structstudent/*結(jié)構(gòu)體定義*/{ charsname[8]; charssex[2];

intsage;}stu;voidmain(){FILE*fp;/*定義文件指針變量*/

fp=fopen("student.stu","rb");

if(fp==NULL) { printf("cannotopenthefilestudent.stu!"); exit(0); }fseek(fp,sizeof(student),0);/*文件位置指針定位*/fread(&stu,sizeof(student),1,fp);/*讀文件*/printf(“%s%s%d\n”,stu.sname,stu.ssex,stu.sage);fclose(fp);/*關(guān)閉文件*/}2.歸納分析文件中有一個位置指針,指向當(dāng)前文件讀寫的位置。C語言的文件既可以順序存取,又可以隨機存取。如果順序讀寫一個文件,每次讀寫完一個數(shù)據(jù)后,該位置指針會自動移動到下一個數(shù)據(jù)的位置。如果想隨機讀寫一個文件,那么就必須根據(jù)需要改變文件的位置指針,這就會用到文件定位函數(shù)。1)文件頭定位函數(shù)rewind()函數(shù)rewind的一般格式為:rewind(文件指針變量)rewind函數(shù)的作用是將文件位置指針返回到文件指針變量指向的文件的開頭。該函數(shù)無返回值2)隨機定位函數(shù)fseek()如果能將文件位置指針按需要移動到任意位置,就可以實現(xiàn)對文件的隨機讀寫。函數(shù)fseek可以實現(xiàn)這個功能,它的使用格式為:fseek(文件指針變量,位移量,起始位置)“位移量”是指以起始位置為基準(zhǔn)點,文件位置指針移動的字節(jié)數(shù),它要求必須為長整型數(shù),當(dāng)用常量表示位移量時要求加后綴“L”?!捌鹗嘉恢谩笔俏灰屏康幕鶞?zhǔn)點,它的取值可以是0、1或2。含義如下:案例9-10:文件位置指針的檢測在【例9.8】中加入文件位置指針檢測函數(shù)后,觀察程序的輸出結(jié)果。程序運行結(jié)果的輸出示例如圖9-13。1.案例9-10的源程序#include“stdio.h“#include<stdlib.h>structstudent/*結(jié)構(gòu)體定義*/{ charsname[8]; charssex[2];

intsage;}stu;voidmain(){FILE*fp;/*定義文件指針變量*/

fp=fopen(“student.stu”,“rb”);/*打開文件*/

printf(“%ld\n”,ftell(fp));fseek(fp,sizeof(student),0);/*文件位置指針定位*/

printf(“%ld\n”,ftell(fp));

printf("%d\n",feof(fp));

fclose(fp);/*關(guān)閉文件*/}2.歸納分析本案例是利用格式化讀寫函數(shù)實現(xiàn)對于文件的操作,程序執(zhí)行結(jié)果如圖圖9-15所示,這是由于剛打開文件時文件的位置指針位于文件頭,所以輸出結(jié)果為0,當(dāng)調(diào)用fseek函數(shù)后,文件位置指針向后移動了所定義的結(jié)構(gòu)體所占的字節(jié)數(shù),所以輸出結(jié)果為16,這時文件的位置指針并沒有位于文件尾,也就是說文件沒有結(jié)束,所以輸出feof函數(shù)的輸出值為0。其中的求當(dāng)前讀寫位置函數(shù)ftell()和檢測文件是否結(jié)束函數(shù)feof()的說明如下:1)求當(dāng)前讀寫位置函數(shù)ftell()讀寫文件時,文件位置指針的值經(jīng)常發(fā)生變化,不容易知道其當(dāng)前位置。但在程序設(shè)計過程中,明確文件當(dāng)前的讀寫位置是很重要的,這就會用到ftell函數(shù),該函數(shù)的一般格式為:ftell(文件指針變量);ftell函數(shù)的作用是得到文件指針變量所指向的文件的當(dāng)前讀寫位置,該函數(shù)調(diào)用成功返回文件的當(dāng)前讀寫位置,該數(shù)值為長整型,是指文件位置指針從文件頭算起的字節(jié)數(shù)。該函數(shù)調(diào)用失敗返回-1L。2)檢測文件是否結(jié)束函數(shù)feof()

函數(shù)feof()用來檢測文件內(nèi)部的位置指針是否位于文件末尾。該函數(shù)的調(diào)用方法如下:feof(文件指針變量);feof函數(shù)的作用是檢測文件指針變量指向的文件是否結(jié)束,如果結(jié)束返回一個非零值,否則返回0。9.5文件出錯的檢測【案例9-11】以只寫方式打開文件,觀察出錯標(biāo)志的變化。程序運行結(jié)果的輸出示例如圖9-14。1.案例9-11的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論