版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第72章文件類型
第12章文件類型
12」文件類型與文件指針
12.2文件的打開與關(guān)閉
12.3文件的讀寫與建立
12.4文件輔助操作
12.5程序設(shè)計(jì)舉例
第72章文件類型
12.1文件類型與文件指針
1.文本文件和二進(jìn)制文件
c語(yǔ)言文件把數(shù)據(jù)看作是一連串的字符(字節(jié))。
c語(yǔ)言文件是一個(gè)字符(字節(jié))的序列,是一字符流或
字節(jié)流,是一種流式文件。根據(jù)數(shù)據(jù)的組織形式,可
分為文本文件和二進(jìn)制文件。
第72章文件類型
文本文件又稱為ASCII文件,每一個(gè)字節(jié)中存放一
個(gè)ASCII代碼,代表一個(gè)字符。例如,一個(gè)整數(shù)123,
若用ASCII文件存放,占3個(gè)字節(jié)的存儲(chǔ)單元,1、2、
3各用一個(gè)字節(jié)存儲(chǔ)。而1、2、3的ASCII碼分別為49、
50、51,故123用ASCII文件存放時(shí),存放形式為
OOllOOOlOOllOOlOOOllOOllo
二進(jìn)制文件是直接用數(shù)據(jù)的二進(jìn)制形式存放。例
如,對(duì)整數(shù)整3,二進(jìn)制為0000000001111011,用二進(jìn)
制文件存放,需2個(gè)字節(jié),存放形式為
0000000001111011o
第72章文件類型
2.緩沖文件系統(tǒng)和非緩沖文件系統(tǒng)
在緩沖文件系統(tǒng)中,系統(tǒng)自動(dòng)在內(nèi)存中為每個(gè)正在
使用的文件開辟一個(gè)緩沖區(qū),文件的存取都是通過(guò)緩沖
區(qū)進(jìn)行的。緩沖區(qū)相當(dāng)于一個(gè)中轉(zhuǎn)站,它的大小由具體
的C版本規(guī)定,一般為512字節(jié)。緩沖文件系統(tǒng)原來(lái)用于
處理文本文件。
在非緩沖文件系統(tǒng)中,系統(tǒng)不為所打開的文件自動(dòng)
開辟緩沖區(qū),緩沖區(qū)的開辟由程序完成。非緩沖文件系
統(tǒng)原來(lái)用于處理二進(jìn)制文件。
第72章文件類型
ANSIC不再采用非緩沖文件系統(tǒng),而只采用緩沖
文件系統(tǒng),在處理二進(jìn)制文件時(shí),也通過(guò)緩沖文件系
統(tǒng)進(jìn)行。ANSIC通過(guò)擴(kuò)充緩沖文件系統(tǒng),使緩沖文件
系統(tǒng)既能處理文本文件,又能處理二進(jìn)制文件。
第上章文件類型
3.內(nèi)部文件和外部文件
存放在外部介質(zhì)上的文件稱為外部文件,通過(guò)文件
名標(biāo)識(shí)。C程序中的文件稱為內(nèi)部文件,用文件指針來(lái)
描述。
程序中要實(shí)現(xiàn)對(duì)文件的處理,先必須在內(nèi)部文件與
外部文件之間建立聯(lián)系,打開文件;然后方可對(duì)文件進(jìn)
行操作。文件最基本的操作是讀寫操作;操作完成應(yīng)當(dāng)
切斷內(nèi)部文件與外部文件之間的聯(lián)系,關(guān)閉文件。
對(duì)文件進(jìn)行的所有操作通過(guò)C編譯系統(tǒng)提供的標(biāo)準(zhǔn)
函數(shù)完成,這些函數(shù)的信息包含在頭文件“stdio.h”中。
第72章文件類型
12.1.2文件類型
文件類型是一特殊的結(jié)構(gòu)體類型,一般命名為
FILEo用戶可以直接使用FILE來(lái)定義文件類型變量,
存放要處理的文件的基本信息。
各種C編譯系統(tǒng)的FILE定義可以不同,但均包含
進(jìn)行文件操作所需的各種信息。
第72章文件類型
下面是TURBOC中對(duì)FILE的定義:
typedefstruct
{shortlevel;
unsignedflags;
charfd;
unsignedcharhold;
shortbsize;
unsignedchar"buffer;
unsignedchar*curp;
unsignedistemp;
shorttoken;
}FILE;
第72章文件類型
12.1.3文件指針變量
對(duì)文件的描述,往往通過(guò)指向文件的文件指針變量
來(lái)進(jìn)行。文件指針變量定義的形式為:
FILE*文件指針變量;
例如:FILE*fp,*fpa[10];
定義了文件指針變量班和文件指針變量數(shù)組中a。文
件指針變量幣及文件指針變量數(shù)組Sa的每個(gè)分量可以指
向一個(gè)文件的信息。
第72章文件類型
12.2文件的打開與關(guān)閉
12.2.1文件的打開
文件的打開用fopen()函數(shù)完成,調(diào)用方式通常
為:
fp=fopen(文件名,文件使用方式);
第72章文件類型
文件使用方式共有12種,用特定字符形成的字符串
來(lái)描述。
(1)"r"方式,以只讀方式打開文本文件。
這時(shí)從文件中讀數(shù)據(jù)到內(nèi)存,故要求文件已經(jīng)存在。
用〃r〃方式打開的文件只能讀,不能同時(shí)寫。
(2)〃w〃方式,以只寫方式打開文本文件。
這時(shí)將內(nèi)存中的數(shù)據(jù)寫入到磁盤文件中。若文件不
存在,建立新文件;若文件存在,則刷新文件,重新建
立。用〃w〃方式打開的文件只能寫,不能同時(shí)讀。
第72章文件類型
(3)〃a〃方式,為文本文件的追加方式。
用于向已存在的文件尾部追加新的數(shù)據(jù),而文件中原來(lái)
的數(shù)據(jù)不被破壞。
(4)〃r+"、〃w+〃、〃a+”方式,打開的文本文件既能讀又能
同時(shí)寫。
〃r+〃方式:在讀的同時(shí)可以進(jìn)行寫。讀寫位置指針在頭
部,若原來(lái)存在此文件,則以覆蓋方式寫。
"w+〃方式:在寫的同時(shí)可以進(jìn)行讀。由于打開文件時(shí),
文件原來(lái)的內(nèi)容被刷新,一般不要在打開文件后立即讀文
件。
〃a+J在追加的同時(shí)可以進(jìn)行讀。讀文件時(shí),從文件首
部開始;寫文件時(shí),在文件尾部追加。
第72章文件類型
(5)〃rb〃、〃wb”、〃ab〃、〃rb+〃、〃wb+〃、〃ab+〃是使用
二進(jìn)制文件相應(yīng)的六種方式。
打開文件可得到三個(gè)信息:
①要訪問(wèn)的文件名。
②使用文件的方式。
③哪一個(gè)指針變量用于指向被打開的文件。
打開成功,返回文件指針(文件信息區(qū)的起始地
址);不能打開,返回空指針。
第72章文件類型
例如:
(1)fp=fopen("student.dat","w");
以只寫方式打開當(dāng)前盤當(dāng)前目錄下的文本文件中的學(xué)
生數(shù)據(jù)文件,用戶可將數(shù)據(jù)寫入此磁盤文件中。
(2)fp=fopen("c:\cj\cjc.dat",student.dat","r");
以只讀方式打開C盤成績(jī)子目錄下C語(yǔ)言成績(jī)文件,
用戶可將文件中數(shù)據(jù)讀出來(lái)。但此文件必須存在,否則會(huì)
出錯(cuò)。
第72章文件類型
(3)fp=fopen(〃PRG〃,〃ab+");
打開二進(jìn)制文件PRG,在讀的同時(shí)也可以寫。
為確保文件的讀寫操作,對(duì)文件是否已正常打開往
往加上if語(yǔ)句進(jìn)行控制。例如:
if(fp=fopen(("student.dat","w")==NULL)
{printf("不能打開文件!”);
exit(0);
第72章文件類型
說(shuō)明:
(1)不是所有編譯系統(tǒng)均提供以上12種文件使用方式。
(2)用"r〃、"rb〃方式打開的文件必須已經(jīng)存在。
(3)用"w"、"wb"方式打開的文件,可以存在也可以不
存在。不存在時(shí),則新建文件;存在時(shí),重新建立,原
文件內(nèi)容不被保留。
(4)在讀寫文本文件時(shí),對(duì)回車換行符要進(jìn)行轉(zhuǎn)換,
讀時(shí)回車換行符轉(zhuǎn)換成換行符,寫時(shí)回車換行符轉(zhuǎn)換成回
車、換行兩個(gè)字符。對(duì)二進(jìn)制文件,不進(jìn)行這種轉(zhuǎn)換。
第72章文件類型
(5)程序運(yùn)行時(shí),系統(tǒng)自動(dòng)打開標(biāo)準(zhǔn)輸入stdin、
標(biāo)準(zhǔn)輸出stdout、標(biāo)準(zhǔn)出錯(cuò)輸出stderr三個(gè)標(biāo)準(zhǔn)文件。
stdin>stdout>stderr由系統(tǒng)自動(dòng)定義,可直接使用。
(6)標(biāo)準(zhǔn)設(shè)備文件可與普通文件一樣操作,但將
產(chǎn)生特殊效果。如寫到打印機(jī),將在程序中實(shí)現(xiàn)打印
輸出控制。
第72章文件類型
12.2.2文件的關(guān)閉
文件在使用完后,應(yīng)及時(shí)關(guān)閉。文件的關(guān)閉用
fclose()函數(shù)完成,調(diào)用方式為:
fclose(文件指針變量);
關(guān)閉文件將使文件指針變量與文件名脫鉤,即指針
變量不再指向該文件。文件關(guān)閉后不能再用該指針變量
對(duì)文件進(jìn)行操作,該指針變量可再指向其它文件。
順利執(zhí)行了關(guān)閉操作,將返回函數(shù)值0。如返回一
個(gè)非0值,則表示文件關(guān)閉出錯(cuò)。
第72章文件類型
12.3文件的讀寫與建立
12.3.1字符級(jí)數(shù)據(jù)的讀和寫
1.字符級(jí)數(shù)據(jù)的讀
函數(shù)原型:
intfgetc(FILE*fp);
功能:從文件指針中所指向的文件中讀取一個(gè)字節(jié)的
代碼值(字符),作為函數(shù)的返回值。正常情況下為一
個(gè)字符,讀到文件尾或出錯(cuò)時(shí)為EOF(-1)o
第72章文件類型
說(shuō)明:
(1)讀完一字節(jié)數(shù)據(jù)后,文件指針自動(dòng)后移。
(2)getc和魚etc是等價(jià)的宏。
(3)若文件指針為stdin,貝悔etc(stdin)功能與
getchar()等價(jià)。
第72章文件類型
2.字符級(jí)數(shù)據(jù)的寫
函數(shù)原型:
intfputc(intch,FILE*fp);
功能:將ch寫入文件指針中所指向的文件中。寫入
成功返回字符值,不成功返回值EOF。
說(shuō)明:
(1)寫入數(shù)據(jù)前,文件指針自動(dòng)后移。
(2)puttc和finite是等價(jià)的宏。
(3)若文件指針為stdout,貝II幣utc(stdout)功能與
puttchar()等價(jià)。
(4)文件的建立通過(guò)寫操作完成。
第72章文件類型
12.3.2字級(jí)數(shù)據(jù)的讀和寫
1.字級(jí)數(shù)據(jù)的讀
函數(shù)原型:
intgetw(FILE*fp);
功能:
從文件指針中所指文件中讀一個(gè)字的數(shù)據(jù)(整
數(shù)),并以它作為函數(shù)的返回值。
說(shuō)明:
非標(biāo)準(zhǔn)C所提供函數(shù)。
第72章文件類型
2.字節(jié)數(shù)據(jù)的寫
函數(shù)原型:
intputw(intw,FILE*fp);
功能:
寫一個(gè)字的數(shù)據(jù)(整數(shù))到文件指針中所指的
文件中,并以它作為函數(shù)的返回值。
說(shuō)明:非標(biāo)準(zhǔn)C所提供函數(shù)。
第72章文件類型
12.3.3字符串級(jí)數(shù)據(jù)的讀和寫
1.字符串?dāng)?shù)據(jù)的讀
函數(shù)原型:
char*fgets(char*str,intlen,FILE*fp);
功能:
從文件指針S所指的文件中讀入一個(gè)長(zhǎng)度為len-1的
字符串,送入到str所指內(nèi)存地址中。返回值為str的首地
址,若讀到文件尾或出錯(cuò),則返回值為NULL。
第72章文件類型
說(shuō)明:
(1)字符串讀入后在最后加結(jié)尾符,\0,。
(2)將讀到的回車符作為字符存儲(chǔ)。這點(diǎn)與gets()
函數(shù)不同,gets()把讀到的回車符轉(zhuǎn)換成結(jié)尾符。
(3)字符串?dāng)?shù)據(jù)的讀和寫亦稱“行處理”。
第72章文件類型
2.字符串?dāng)?shù)據(jù)的寫
函數(shù)原型:
intfputs(char*str,FILE*fp);
功能:
將str指針?biāo)缸址畬懭氲轿募羔樦兴肝?/p>
件中。若該函數(shù)成功調(diào)用,返回函數(shù)值0,否則返
回函數(shù)值非0。
第72章文件類型
12.3.4數(shù)據(jù)塊數(shù)據(jù)的讀和寫
1.數(shù)據(jù)塊數(shù)據(jù)的讀
函數(shù)原型:
unsignedfread(void*buffer,unsignedsize,unsigned
count,FILE*fp);
功能:從文件指針fjp所指的文件中讀取count個(gè)大小為size
字節(jié)的數(shù)據(jù)塊到buffer指針?biāo)傅膬?nèi)存中。讀到的數(shù)據(jù)可
能含有各種不同的類型。若該函數(shù)成功調(diào)用,返回count
的值。
第72章文件類型
例如:
inta[100];
fread(a,2,100,fp);/*從中讀取100個(gè)大小為
2字節(jié)的數(shù)據(jù)塊(整數(shù))到數(shù)組a中*/
第72章文件類型
2.數(shù)據(jù)塊數(shù)據(jù)的寫
函數(shù)原型:
unsignedfwrite(void*buffer,unsignedsize,unsignedcount,
FILE*fp);
功能:向文件指針中所指的文件寫入由buffer指針?biāo)?/p>
標(biāo)識(shí)的count個(gè)大小為size字節(jié)的數(shù)據(jù)塊。若該函數(shù)成功
調(diào)用,返回count的值。例如:
inta[100];
fwrite(a,2,100,fp);/*將整個(gè)數(shù)組a寫入文件中中*/
第72章文件類型
12.3.5格式化數(shù)據(jù)的讀和寫
函數(shù)原型:
intfscanf(FILE*fp,格式字串,變量地址表);
intfprintf(FILE*fp,格式字串,變量表);
使用fscanf()和幣rintf()函數(shù)對(duì)磁盤文件進(jìn)行讀
和寫,相當(dāng)方便。但是輸入時(shí)需將ASCII碼轉(zhuǎn)換為二進(jìn)制,
輸出時(shí)需將二進(jìn)制轉(zhuǎn)換成ASCII碼,需花費(fèi)較多的時(shí)間,
故一般較少采用,而是使用fread()和fwrite()函數(shù)。
第72章文件類型
例如:
inti,j;
floatf;
fscanf(fp,〃%d%d%P,&i,&j,&f);/*
從中中按指定格式讀取數(shù)據(jù)至i、j、f中*/
第上章文件類型________________
12.3.6文件的建立步驟
對(duì)文件操作前必須打開文件,文件打開后才可進(jìn)
行讀寫操作,操作完成應(yīng)關(guān)閉文件。
文件的建立步驟如下:
(1)以寫方式打開文件。
(2)將數(shù)據(jù)寫入文件,多個(gè)數(shù)據(jù)反復(fù)寫入。
(3)寫完數(shù)據(jù)關(guān)閉文件。
第72章文件類型
例12-1定義一個(gè)函數(shù),建立存放26個(gè)英文小寫字母的文件LF.DAT。
voidcreatfile()
{char1;
FILE*fp;
if((fp=fopen("LF.DAT","w"))==NULL)/*打開文件*/
{printf("不能打開文件!");
exit(0);
}
fbr(l='a';1++)/*寫入數(shù)據(jù)*/
fputc(1,fp);
fclose(fp);/*關(guān)閉文件*/
第72章文件類型
例12?2定義一個(gè)函數(shù),建立存放某班50個(gè)同學(xué)姓名、
C語(yǔ)言成績(jī)的數(shù)據(jù)文件CCJ.DAT,原始數(shù)據(jù)由數(shù)組參數(shù)傳入。
voidcreatfile(floatx[])
{inti;
FILE*fp;
if((fp=fopen(〃CCJ.DAT〃,〃wb"))==NULL)/*打開文件*/
{printf("不能打開文件!”);
exit(0);
}
for(i=0;iv=50;i++)/*寫入數(shù)據(jù)*/
fwrite(x+i,4,1,fp);
fclose(fp);/*關(guān)閉文件*/
第72章文件類型
寫入數(shù)據(jù)也可以整體一次完成:
fwrite(x,4,50,fp);
⑴文件的建立在操作系統(tǒng)下可通過(guò)改向操作完成。
(2)數(shù)據(jù)源文件也可通過(guò)任何字處理軟件建立。
(3)執(zhí)行一個(gè)向打印機(jī)寫的操作,可在程序中實(shí)現(xiàn)數(shù)據(jù)
的打印輸出。
例如:
fp=fopen("PRN:","w");
fputs("HUNANCOMPUTER",fp);/*打印輸出
HUNANCOMPUTER*/
打印輸”也喈接住手系統(tǒng)
第72章文件類型
12.3.7文件的讀取控制
while(fgetc(fp)!=EOF)
{讀取數(shù)據(jù)}
或
while(!feof(fp))
{讀取數(shù)據(jù)}
對(duì)于二進(jìn)制文件,由于最后一個(gè)數(shù)據(jù)可能為-1
(EOF),最好用feof()函數(shù)判斷。
第72章文件類型
例12-3從上例建立的文件CCJ.DAT中讀出學(xué)生的C
語(yǔ)言成績(jī),求出每個(gè)學(xué)生與平均成績(jī)之差。
/*程序12-3,求每個(gè)學(xué)生與平均成績(jī)之差*/
structst
{char*name;
floatcj;
}C[200];
main()
{inti=0,n;
floatsum=0,av;
floatsav[200];
FILE*fp;
第72章文件類型
if((fp=fopen("CCJ.EAT",〃rb〃))==NULL)/*打開文件*/
{printf("不能打開文件!");
while(!feof(fjp))/*讀數(shù)據(jù),同時(shí)進(jìn)行累加*/
{fread(c+i,4,1,fp);
sum+=c[i].cj;
i++;
}
n=i;
av=sum/n;/*求平均成績(jī)*/
for(i=0;i<n;i++)/*求與平均成績(jī)之差并輸出*/
{sav[i]=c[i].cj-av;
printf("%s,%6.1f,c[i].name,c[i].cj,sav[i]);
第72章文件類型
12.4文件輔助操作
1.反繞函數(shù)
函數(shù)原型:
voidrewind(FILE*fp);
功能:使文件的讀寫位置指針?lè)祷匚募_頭。
第72章文件類型
2.隨機(jī)定位函數(shù)
函數(shù)原型:
intfseek(FILE*fp,longintnumbytes,intorigin);
功能:將文件的位置指針移動(dòng)numbytes個(gè)字節(jié),
numbytes為正數(shù)表示后移,為負(fù)數(shù)表示前移。其中移動(dòng)的
開始位置由origin確定,origin的值可以為0、1、2,或
SEEK-SET、SEEK-CUR、SEEK-END,分另U代表
“文件開頭”、“當(dāng)前位置”、“文件末尾”三個(gè)特殊位
置。________________________________
第72章文件類型
例如:
(1)fseek(fp,1001,0);/*將文件的位置指針
移動(dòng)到離文件開頭100個(gè)字節(jié)處*/
(2)fseek(fp,501,1);/*將文件的位置指針向
前移動(dòng)50個(gè)字節(jié)處*/
(3)fseek(fp,-101,2);/*將文件的位置指針
向后移10個(gè)字節(jié)處*/利用隨機(jī)定位函數(shù)實(shí)現(xiàn)對(duì)文件的隨
機(jī)讀寫。
第72章文件類型
3.求當(dāng)前讀寫位置函數(shù)
函數(shù)原型:
longintftell(FILE*fp);
功能:
得到文件的當(dāng)前讀寫位置指針,用相對(duì)于文件開
頭的位移量來(lái)表示。若出現(xiàn)調(diào)用錯(cuò)誤,返回值為-1。
第72章文件類型
4.出錯(cuò)檢測(cè)函數(shù)
函數(shù)原型:
intferror(FILE*fp);
功能:
檢查文件中各種輸入輸出函數(shù)調(diào)用是否出錯(cuò)。
若得到的函數(shù)值為0,表示未出錯(cuò);得到的函數(shù)值非
0,表示出錯(cuò)。
調(diào)用fopen()函數(shù)時(shí),ferror初值自動(dòng)置0。
第/Z章文件類型________________
5.初始化清零函數(shù)
函數(shù)原型:
voidclearerr(FILE*fp);
功能:
清除文件錯(cuò)誤標(biāo)志和文件結(jié)束,將文件錯(cuò)誤標(biāo)志和
文件結(jié)束標(biāo)志置0。
輸入輸出函數(shù)調(diào)用出錯(cuò)后,出錯(cuò)標(biāo)志一直保留,直到
對(duì)同一文件調(diào)用clearerr()函數(shù)、rewind()函數(shù)或任
一輸入輸出函數(shù)。
第72章文件類型
12.5程序設(shè)計(jì)舉例
例12-4從鍵盤輸入若干字符,存入某磁盤文件中,
然后從文件中讀取數(shù)據(jù)打印輸出。
/*程序12-4,輸入若干字符至文件,并打印輸出*/
main
{charch,*fhame;
FILE*fp,*pp;
scanf("%s",fname);/*輸入磁盤文件名*/
/*建立文件*/
第72章文件類型
if((fp=fopen(fhame,"w"))==NULL)
{printf("文件不能打開!");
exit(0);
ch=getchar();
while(ch!='\n')
{fputc(ch,fp);
ch=getchar();
fblose(fp);
/*從剛建立的磁盤文件中讀取數(shù)據(jù),打印輸出*/
if((fp=fbpen(fhame,"r"))==NULL)
{printf("數(shù)據(jù)文件不能打開!");
exit(0);
第72章文件類型
if((pp=fbpen("PRN:","w〃))==NULL)
{printf("打印機(jī)沒(méi)能連接!〃);
exit(0);
}
ch=fgetc(fp);
while(!feof(fp))
{fprintf(pp,"%6c",ch)
ch=fgetc(fp);
fclose(fp);
fclose(pp);
第72章文件類型
例12?5學(xué)生信息包含有學(xué)號(hào)、姓名、年齡、成績(jī)
及住址,從鍵盤輸入n個(gè)學(xué)生的這些信息,然后存入一個(gè)
磁盤文件STUDENT.DAT中。
/*程序12-5,建立學(xué)生信息文件*/
#defineSIZE200
structstudent
{intnum;
char*name;
intage;
floatscore;
char*addr;
}stud[SIZE];
intn;
第72章文件類型
voidsave()/*建立文件STUDENT.DAT*/
{FILE*fp;
inti;
if((fp=fbpen("STUDENT.DAT",〃wb"))==NULL)
{printf("不能建立文件!");
exit(0);
}
for(i=0;i<n;i++)
if(fwrite(&stud[i],sizeof(structstudent),1,fp)!=1)
{printf("文件不能寫!\n");
exit(0);
}
第72章文件類型
fclose(fp);
}
main()
{inti;
scanf("%d",&n);
for(i=0;i<n;i++)/*從鍵盤輸入數(shù)據(jù)*/
scanf("%d%s%d%f%s",&stud[i].mum,stud[i].name,
&stud[i].age,&stud[i].score,stud[i].addr);
save();/*調(diào)用函數(shù)建立文件*/
第72章文件類型
例12-6編寫類似DOS拷貝命令的文件復(fù)制程序。
/*程序12-6,拷貝命令程序*/
main(intargc,char*argv[])
{inti;
FILE*fps,*fpt;
if(argc!=3)
{puts("命令行參數(shù)格式是:執(zhí)行文件名源文件名目標(biāo)文件名〃);
exit(0);
}
if((fps=fbpen(argv[1],"rb"))==NULL)
{printf("源文件不能打開!");
exit(0);
第72章文件類型
if((fpt=fbpen(argv[2],"wb"))==NULL)
{printf("目標(biāo)文件不能建立!");
exit(0);
}
while(!feof(fps))
{fread(&i,2,1,fps);
fwrite(&i,2,1,fpt);
fclsoe(fps);
fclose(fpt);
第72章文件類型
例12-7對(duì)例11-5建立的磁盤文件STUDENT.DAT,
首先在屏幕上輸出文件內(nèi)容,然后使指針移到開頭,實(shí)現(xiàn)
文件的復(fù)制。
/*程序12-7,文件的輸出復(fù)制操作*/
#defineSIZE200
structstudent
{intnum;
char*name;
intage;
floatscore;
char*addr;
}stud;
第72章文件類型
main()
{FILE*fpl,*fp2;
char*tname;
inti=0;
if((fpl=fopen("STUDENT.DAT",〃rb"))=NULL)
{printf("不能打開文件!");
exit(0);
}
while(!feof(fpl))/*屏幕輸出*/
{fread(&stud,sizeof(structstu
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 簡(jiǎn)單隨機(jī)抽樣課件好
- 家紡導(dǎo)購(gòu)專業(yè)知識(shí)培訓(xùn)課件
- 酒店物業(yè)管理服務(wù)合同三篇
- 社團(tuán)活動(dòng)對(duì)學(xué)生發(fā)展的影響計(jì)劃
- 秋季學(xué)期學(xué)生學(xué)習(xí)成果展示計(jì)劃
- 促肝細(xì)胞生長(zhǎng)素相關(guān)項(xiàng)目投資計(jì)劃書
- 前臺(tái)文員的個(gè)人發(fā)展規(guī)劃計(jì)劃
- 銷售心理學(xué)與客戶洞察培訓(xùn)
- 張緊裝置相關(guān)項(xiàng)目投資計(jì)劃書范本
- 輸尿管癌的護(hù)理查房
- JB T 7588-2010YL系列雙值電容單相異步電動(dòng)機(jī)技術(shù)條件(機(jī)座號(hào)80~132)
- 抵制不健康讀物“讀書與人生”
- 大型展覽會(huì)場(chǎng)消防應(yīng)急演示
- 2024年中廣核新能源深圳有限公司招聘筆試參考題庫(kù)含答案解析
- 2024年徐州地鐵集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 《機(jī)電一體化設(shè)備安裝與調(diào)試》課程標(biāo)準(zhǔn)
- 拉運(yùn)污水泄漏應(yīng)急預(yù)案
- 幼兒園大班社會(huì)《年的故事》
- 馬術(shù)比賽應(yīng)急處置預(yù)案
- 基于核心素養(yǎng)的初中道德與法治大單元與議題式教學(xué)融合策略 論文
- 土壤檢測(cè)報(bào)告
評(píng)論
0/150
提交評(píng)論