|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这个程序功能是图片文件合成,但是只能执行程序所在文件夹的文件合并操作,如果执行其他文件夹的文件,可以执行成功但是执行完会报错,而且生成的文件也不对,问下大佬们有没有办法修改程序执行其他文件夹的图片和文件的合并操作。
#include <stdio.h>
#include <stdlib.h>
#if(1)
int main(void)
{
FILE *pic,*file,*finish;
char pic_name[20],file_name[20],finish_name[20];
char ch;
printf("请输入需要合成的文件和图片名称\n");
printf("图片:");
scanf("%s",pic_name);
printf("文件:");
scanf("%s",file_name);
printf("生成为:");
scanf("%s",finish_name);
if(!(pic=fopen(pic_name,"rb")))
{
printf("Connot open this picture:%s\n",pic_name);
exit(0);
}
if(!(file=fopen(file_name,"rb")))
{
printf("Connot open this file :%s\n",file_name);
exit(0);
}
if(!(finish=fopen(finish_name,"wb+")))
{
printf("Connot open this file :%s\n",finish_name);
exit(0);
}
while(!(feof(pic)))
{
ch=fgetc(pic);
fputc(ch,finish);
}
while(!(feof(file)))
{
ch=fgetc(file);
fputc(ch,finish);
}
printf("文件合成成功!\n");
fclose(pic);
fclose(file);
}
#endif
运行结果
请输入需要合成的文件和图片名称
图片:F:\C\学习文件\练习\文件操作\1.jpg
文件:F:\C\学习文件\练习\文件操作\2.rar
生成为:F:\C\学习文件\练习\文件操作\3.jpg
文件合成成功!
请按任意键继续. . .
本帖最后由 jackz007 于 2021-1-27 14:47 编辑
应该养成一个好的习惯,用户输入数据的时候,如果需要检验,应该即时检验,有问题当场解决,不要发生输入100个参数,到输完的时候,才告诉用户,第 1 个参数不正确。然后,一切又得从头再来。 #include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE * pic , * file , * finish ;
char pic_name[20] , file_name[20] , finish_name[20] ;
char ch ;
printf("请输入需要合成的文件和图片名称 :\n") ;
printf("图片:") ;
scanf("%s" , pic_name) ;
if((pic = fopen(pic_name , "rb")) != NULL) {
printf("文件:") ;
scanf("%s" , file_name) ;
if((file = fopen(file_name ,"rb")) != NULL) {
printf("生成为:") ;
scanf("%s",finish_name) ;
if((finish=fopen(finish_name,"wb")) != NULL) {
ch = fgetc(pic) ;
while(! feof(pic)) {
fputc(ch , finish) ;
ch = fgetc(pic) ;
}
ch = fgetc(file) ;
while(! feof(file)) {
fputc(ch , finish) ;
ch = fgetc(file) ;
}
fclose(finish) ;
printf("\n") ;
printf("文件合并成功。\n") ;
printf("\n") ;
} else {
fprintf(stderr , "\n") ;
fprintf(stderr , "Connot create the output file : %s\n" , finish_name) ;
fprintf(stderr , "\n") ;
}
fclose(file) ;
} else {
fprintf(stderr , "\n") ;
fprintf(stderr , "Connot open the file : %s\n" , file_name) ;
fprintf(stderr , "\n") ;
}
fclose(pic) ;
} else {
fprintf(stderr , "\n") ;
fprintf(stderr , "Connot open the picture : %s\n" , pic_name) ;
fprintf(stderr , "\n") ;
}
}
|
|