本帖最后由 jackz007 于 2019-11-17 00:46 编辑
在读取显示 'a.txt' 文件内容后,读写指针位于文件结束,在文件复制之前,必须复位文件 'a.txt' 的读写指针,这样,才可以把 'a.txt' 完整复制到 'b.txt' 。
下面是我修改的代码,谨供楼主参考:#include <stdio.h>
#include <string.h>
int main(void)
{
FILE * fp , * fp1 ;
char buf[1026] , ch ;
if((fp = fopen("a.txt" , "r")) != NULL) {
fgets(buf , 1024 , fp) ;
while(! feof(fp)) {
printf("%s", buf) ;
fgets(buf , 1024 , fp) ;
}
if((fp1 = fopen("b.txt" , "w")) != NULL) {
fseek(fp , 0 , 0) ; // fp 的指针在文件结尾,必须把它移动到文件开头。
ch = fgetc(fp) ;
while (! feof(fp)) {
fputc(ch , fp1) ;
ch = fgetc(fp) ;
}
fclose(fp1) ;
} else {
fprintf(stderr , "\n") ;
fprintf(stderr , "错误:无法创建输出文件 b.txt\n") ;
fprintf(stderr , "\n") ;
}
fclose(fp) ;
} else {
fprintf(stderr , "\n") ;
fprintf(stderr , "错误:无法打开输入文件 a.txt\n") ;
fprintf(stderr , "\n") ;
}
return 0 ;
}
|