爱上pc的Qt 发表于 2022-2-22 21:21:53

文件合成,jpg,txt,rar,zip进行合成出现的问题,附代码。

#include <stdio.h>
typedef char name;

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+其他形式的文件,合成之后文件确实变大了,也是前两者之和。但是就是打不开后一个文件的内容。

爱上pc的Qt 发表于 2022-2-22 21:23:54

球球大佬们解答一下啦

wp231957 发表于 2022-2-22 22:00:45

爱上pc的Qt 发表于 2022-2-22 21:23
球球大佬们解答一下啦

txt.还可以相加
但是其他文档怎么能直接相加???

ba21 发表于 2022-2-22 22:01:00

2种类型的文件,2进制合并后,
请问你要怎么打开后一个文件的内容???

爱上pc的Qt 发表于 2022-2-22 22:18:11

ba21 发表于 2022-2-22 22:01
2种类型的文件,2进制合并后,
请问你要怎么打开后一个文件的内容???

修改后缀名不能操作吗?

爱上pc的Qt 发表于 2022-2-22 22:19:25

wp231957 发表于 2022-2-22 22:00
txt.还可以相加
但是其他文档怎么能直接相加???

啊,不能吗?我是看视频学的,他那个视频里有一个rar文件和jpg文件,他就可以啊

wp231957 发表于 2022-2-22 22:25:28

爱上pc的Qt 发表于 2022-2-22 22:19
啊,不能吗?我是看视频学的,他那个视频里有一个rar文件和jpg文件,他就可以啊

jpg需要做实验,rar/zip目测相加后肯定打不开

爱上pc的Qt 发表于 2022-2-22 22:30:46

wp231957 发表于 2022-2-22 22:25
jpg需要做实验,rar/zip目测相加后肯定打不开

我都试过了,总结就是不管怎么样,第二个合并的文件是打不开的。
除了第二个是txt文本,他显示的是乱码。应该是把合成后的二进制全部显示了
{:5_99:}

wp231957 发表于 2022-2-22 22:33:01

爱上pc的Qt 发表于 2022-2-22 22:19
啊,不能吗?我是看视频学的,他那个视频里有一个rar文件和jpg文件,他就可以啊

你看的是木马相关吧
可以把任何文件和jpg合并在一起,然后骗服务器
这是一个图片,后台接收后再把自己的文件分离出来,就可以搞事情了

ba21 发表于 2022-2-22 22:33:56

爱上pc的Qt 发表于 2022-2-22 22:18
修改后缀名不能操作吗?

一个文件是什么类型是在前面N个字节标记。
相应的软件只在文件中读取它需要的内容,后面不需要的自然不会被读取。

wp231957 发表于 2022-2-22 22:35:32

爱上pc的Qt 发表于 2022-2-22 22:30
我都试过了,总结就是不管怎么样,第二个合并的文件是打不开的。
除了第二个是txt文本,他显示的是乱码 ...

我回了贴,被审核了,大概有关键字吧
waiting................

爱上pc的Qt 发表于 2022-2-22 22:35:42

ba21 发表于 2022-2-22 22:01
2种类型的文件,2进制合并后,
请问你要怎么打开后一个文件的内容???

这个确实是打不开的,我也是看视频照着练练。可是视频那种图片文件修改一下后缀名之后,就可以变成一个rar文件,这是怎么做到的?

爱上pc的Qt 发表于 2022-2-22 22:40:08

wp231957 发表于 2022-2-22 22:35
我回了贴,被审核了,大概有关键字吧
waiting................

{:5_94:}被审核了

爱上pc的Qt 发表于 2022-2-22 22:42:08

ba21 发表于 2022-2-22 22:33
一个文件是什么类型是在前面N个字节标记。
相应的软件只在文件中读取它需要的内容,后面不需要的自然不 ...

那就是说如果我第一个文件是.jpg,第二个文件是.rar,
那我把后缀改成.rar他就扫描不到那N个字节标记吗?

wp231957 发表于 2022-2-22 22:43:50

爱上pc的Qt 发表于 2022-2-22 22:40
被审核了

我不知道你看的是啥视频,但是合成技术就是做?坏?事?用的,可以把任何程序或文档拼接在jpg的后面,伪?装?成图片来骗?取?信任
然后获取后再把有用的文档分离出来,就可以..........你懂得

爱上pc的Qt 发表于 2022-2-22 22:47:53

wp231957 发表于 2022-2-22 22:43
我不知道你看的是啥视频,但是合成技术就是做?坏?事?用的,可以把任何程序或文档拼接在jpg的后面,伪 ...

哈哈哈哈哈我是个好人,就是看的小甲鱼的视频{:5_97:}

wp231957 发表于 2022-2-22 22:50:33

爱上pc的Qt 发表于 2022-2-22 22:47
哈哈哈哈哈我是个好人,就是看的小甲鱼的视频

只是为了某种目的而拼接文件,不要幻想着去打开拼接后的文件
要是两个jpg能直接拼接成一个大的图片,还要ps软件干嘛

hrpzcf 发表于 2022-2-23 12:42:28

不是所有类型文件合成后都能通过改后缀的方式打开的,我写了个类似功能的程序,给被合成的文件建一个记录表,分解的时候根据记录表分解

爱上pc的Qt 发表于 2022-2-23 13:46:41

hrpzcf 发表于 2022-2-23 12:42
不是所有类型文件合成后都能通过改后缀的方式打开的,我写了个类似功能的程序,给被合成的文件建一个记录表 ...

好的,我又看了一下资料,网上也搜了一下。视频介绍的是内涵图,就只有图片和压缩包文件合并的操作。然后昨天我用的解压软件不是winrar,就导致我上述的问题。{:10_250:}
页: [1]
查看完整版本: 文件合成,jpg,txt,rar,zip进行合成出现的问题,附代码。