|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
typedef char name[20];
int main()
{
FILE *f_picture,*f_file,*f_finish;//文件指针
name picture,file,finish;//文件路径
char ch;//暂存区
//若是在同一文件夹下(路径),只输入名称。否则需输入完整路径。
printf("欢迎使用图文合成器!\n");
/*文件打开指向块*/
printf("合成所需的图片名称:");
scanf("%s",picture);
f_picture=fopen(picture,"rb");//2进制打开形式
if(f_picture==NULL)
{
printf("合成操作失败!");
printf("Cannot open the picture !\n");
return 0;
}
printf("合成所需的文件名称:");
scanf("%s",file);
if(!(f_file=fopen(file,"rb")))
{
printf("合成操作失败!");
printf("Cannot open the file !\n");
return 0;
}
printf("合成的文件名称:");
scanf("%s",finish);
if(!(f_finish=fopen(finish,"wb")))
/*文件若不关闭,内部指针则指向end。
若有文件的关闭操作,后需加入end,应用ab指令*/
{
printf("合成操作失败!");
printf("Cannot open the finish file !\n");
return 0;
}
/*文件合成关闭块*/
while(!(feof(f_picture)))//文件未结束进行循环
{
//文件还未到end时,feof()返回零
ch=fgetc(f_picture);
fputc(ch,f_finish);
}
//文件用完即关闭
fclose(f_picture);
while(!(feof(f_file)))
{
ch=fgetc(f_file);
fputc(ch,f_finish);
}
fclose(f_file);
fclose(f_finish);
return 0;
}
实验都是jpg+其他形式的文件,合成之后文件确实变大了,也是前两者之和。但是就是打不开后一个文件的内容。
一个文件是什么类型是在前面N个字节标记。
相应的软件只在文件中读取它需要的内容,后面不需要的自然不会被读取。
|
|