- 注册时间
- 2004-10-13
- 最后登录
- 2019-5-15
⑧专业
*永恒国度*
- 积分
- 14145
|
- #include<stdio.h>
- char buffer[37278];
- int main(void)
- {
- FILE *fp,*fp2;
-
- unsigned int bfsz = 37278;
- unsigned int i = 0;
- if((fp=fopen("e:\\BookKeyWord.txt","rb"))==NULL)//打开用于读取的文件
- exit(1);
- if((fp2=fopen("e:\\MyRecord.txt","wb"))==NULL)//打开用于写入的文件
- exit(1);
- while(bfsz>0)
- {
- if(fread(buffer,bfsz,1,fp)==1)
- {
- //成功读入则写入
- fwrite(buffer,bfsz,1,fp2);
- i += bfsz; //用i记录已读入字节
- }
- else
- {
- fseek(fp,i,0); //指向已读入的字节之后
- bfsz /= 2; //将读入字节数减半
- }
- }
- fclose(fp);
- fclose(fp2);
- return 0;
- }
复制代码 为什么我把fseek(fp,i,0); 这句去掉,就不能正常复制呢?
如果fread()能正常读取不是 fp 指针已经指向了读取了的字节之后了吗? |
|