有大佬帮看下嘛?合成文件,第二个文件损坏是什么情况?哪里出错了
#include "stdio.h"#include "stdlib.h"
void compose(FILE *,FILE *);
void main()
{
FILE *f_pic,*f_file,*f_finish;
char pic_name,file_name,finish_name;
printf("图片名:");
scanf("%s",pic_name);
f_pic=fopen(pic_name,"rb");
printf("文件名:");
scanf("%s",file_name);
f_file=fopen(file_name,"rb");
printf("合成文件名:");
scanf("%s",finish_name);
f_finish=fopen(finish_name,"ab");
compose(f_pic,f_finish);
compose(f_file,f_finish);
}
void compose(FILE *fp1,FILE *fp2)
{
char ch;
while(!feof(fp1))
{
ch=fgetc(fp1);
fputc(ch,fp2);
}
} 楼主应该善用提示信息,这样容易帮助你找到和解决问题。#include <stdio.h>
#include <stdlib.h>
main(void)
{
FILE * f_pic , * f_file , * f_finish ;
char pic_name , file_name , finish_name ;
printf("图片名:") ;
scanf("%s" , pic_name) ;
if((f_pic = fopen(pic_name , "rb")) != NULL) {
printf("文件名:") ;
scanf("%s",file_name) ;
if ((f_file = fopen(file_name , "rb")) != NULL) {
printf("合成文件名:") ;
scanf("%s" , finish_name) ;
if((f_finish = fopen(finish_name , "wb")) != NULL) {
while(! feof(f_pic)) fputc(fgetc(f_pic) , f_finish) ;
while(! feof(f_file)) fputc(fgetc(f_file) , f_finish) ;
fclose(f_finish) ;
printf("\n") ;
printf("文件合并操作成功\n") ;
printf("\n") ;
} else {
fprintf(stderr , "\n") ;
fprintf(stderr , "无法创建输出文件:%s\n" , finish_name) ;
fprintf(stderr , "\n") ;
}
fclose(f_file) ;
} else {
fprintf(stderr , "\n") ;
fprintf(stderr , "无法打开文件:%s\n" , file_name) ;
fprintf(stderr , "\n") ;
}
fclose(f_pic) ;
} else {
fprintf(stderr , "\n") ;
fprintf(stderr , "无法打开文件:%s\n" , pic_name) ;
fprintf(stderr , "\n") ;
}
}
jackz007 发表于 2019-7-12 22:23
楼主应该善用提示信息,这样容易帮助你找到和解决问题。
感谢大佬,受教了 lsh2323192152 发表于 2019-7-14 20:08
感谢大佬,受教了
你应该把2楼设为最佳答案
页:
[1]