程序中涉及的部分文件操作的庫函數(shù)簡(jiǎn)要說明如下:
int fread (void *buffer,int size,int count,F(xiàn)ILE *fbin):從二進(jìn)制文件流fbin中讀取count塊長度為size字節(jié)的數(shù)據(jù)塊到buffer指向的存儲(chǔ)區(qū)。返回值為實(shí)際讀取的數(shù)據(jù)塊數(shù)。
int fwrite(void *buffer,int size,int count,F(xiàn)ILE *fbin):各參數(shù)和返回值的意義與fread相同,但對(duì)文件進(jìn)行寫操作。
int fseek(FILE *fbin,long offset,int position):將文件流fbin的讀/寫位置以position為基準(zhǔn)移動(dòng)offset字節(jié)。position的值可以是SEEK_SET(文件頭),SEEK_CUR(當(dāng)前位置),SEEK_END(文件尾);offset為正,表示向文件尾方向移動(dòng),為負(fù)表示向文件頭方向移動(dòng),為零表示到基準(zhǔn)位置。
long ftell(FILE *fbin):返回文件流fbin的當(dāng)前讀/寫位置(相對(duì)于文件頭的偏移量)。上述偏移量均以字節(jié)為單位,即偏移字節(jié)數(shù)。
【程序】
#include
#include
typedef struct{char fname[256];long length;long offset;
}FileInfo;
void copyfile(FILE *fin,F(xiàn)ILE *fout,int fsize)
{char buf[1024];int siz=1024;
while(fsize !=0){/*每次復(fù)制siz個(gè)字節(jié),直至復(fù)制完fsize個(gè)字節(jié)*/
if(siz >fsize) (1) ;
fread(buf,1,siz,fin);fwrite(buf,1,siz,fout);
fsize= (2) ;}
}
int dofile(FILE *fin,F(xiàn)ileInfo *inp)
{ long offset;
FILE *fout;
if((fout=fopen(inp->fname,"wb"))==NULL){
printf("創(chuàng)建文件錯(cuò)誤:%s\n",inp->fname);
return 1;
}
希望與其他軟考考生進(jìn)行交流?點(diǎn)擊進(jìn)入軟考論壇>>>
更多信息請(qǐng)?jiān)L問:考試吧軟件水平考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |