你的错误很多,这是我写的源码,你看一下:#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *f_pic, *f_file, *f_finish; //定义3个文件指针变量
char ch,pic_name[20], file_name[20], finish_name[20];//对3个文件命名所需的空间
printf("*************** <change the world by programe> *****************\n\n");
printf("-------------图片文件合成器,快来试试吧!^_^!-----------------\n\n\n\n");
printf("哈哈!!输入需要合成的图片和文件的名称吧 !!^&^!!: \n");
printf("\n");
printf("亲!输入图片的名字加后缀思密达: ");
scanf("%s", pic_name); //输入图片文件的名字
printf("输入需要隐藏的文件的名字和后缀名思密达: ");
scanf("%s", file_name); //输入其它二进制文件的名字
printf("最后!^&^!呵呵!输入需要生成的文件的名字和后缀名: ");
scanf("%s", finish_name); //输入将要合成的文件的名字
//打开图片文件,并为只读的二进制
if( !(f_pic = fopen(pic_name, "rb"))) //判断如果这个图片文件打不开或路径不对
{
printf("Cannot open the picture %s !", pic_name); //那么就打印提示信息,最后终止程序
return;
}
if( !(f_file = fopen(file_name, "rb"))) //打开二进制文件
{
printf("Cannot open the file %s !", file_name);
return;
}
if( !(f_finish = fopen(finish_name, "wb"))) //打开将要写入的文件,并且可以以二进制的形式写入
{
printf("Cannot open the file %s !", finish_name);
return;
}
while( !(feof(f_pic))) //这里是说f_pic所指向的内容如果没结束的话,那就继续循环,其中feof();为
{ //判断一个文件是否结束的函数
ch = fgetc(f_pic); //获得指针f_pic所指向的内容,并把它赋给ch,其中fgetc();是读取函数也就是获取
fputc(ch, f_finish); //把获取的字符写入到f_finish的这个文件中,其中fputc();是写入函数
}
fclose(f_pic); //最后擦屁股,关掉f_pic这个文件
while( !(feof(f_file))) //同上,一样的,这里我就不一一说了,呵呵 !!!^_^!!!
{
ch = fgetc(f_file);
fputc(ch, f_finish);
}
fclose(f_file); //擦屁股,关闭文件
fclose(f_finish); //再擦屁股,呵呵!!^&^!!
printf("\n\n");
printf("恭喜你!哈哈哈哈哈!文件成功合成 !!^_^!!\n");
printf("\n");
system("pause"); //这里是程序运行到最后把程序定在哪儿,就是为了不让它哗啦一闪就没了的操作
}
|