czy94n7y12r 发表于 2019-3-5 20:57:17

急急急!求大神帮助看一下jpg转rar代码问题

我这个代码基本是按照小甲鱼老师的流程写下来的,可以运行,但是当我把后缀名从jpg改成rar的时候,就打不开了,请问大神有没有发现问题,谢谢大佬们了。


#include<stdio.h>
#include<stdlib.h>

int main()
{
        FILE *fp, *pp, *rp;
        char filename, picturename, rarname, ch;

        printf("please write the filename :\n");//输入需要打开的新建文件名称
        scanf("%s", filename);

        if (!(fp = fopen(filename, "wb")))//验证新建文件是否被打开
        {
                printf("there is no file can been open\n");
        }

        printf("please write the picturename :\n");//输入需要打开的照片文件名称
        scanf("%s", picturename);

        if (!(pp = fopen(picturename, "rb")))//验证照片文件是否被打开
        {
                printf("there is no picturefile can been open\n");
        }

        printf("please write the rarname :\n");//输入需要打开的压缩文件名称
        scanf("%s", rarname);

        if (!(rp = fopen(rarname, "rb")))//验证压缩文件是否被打开
        {
                printf("there is no rarfile can been open\n");
        }
        while (!(feof(pp)))
        {
                ch = fgetc(pp);
                fputc(ch, fp);
        }
        fclose(pp);

        while (!(feof(rp)))
        {
                ch = fgetc(rp);
                fputc(ch, rp);
        }

        fclose(fp);
        fclose(rp);

        system("pause");
}               

jackz007 发表于 2019-3-5 21:17:47

本帖最后由 jackz007 于 2019-3-5 21:22 编辑

       代码逻辑很乱,楼主是否可以把实现思路线索大致说一下,看你的代码无非就是简单的二进制文件复制,并不涉及到 jpg 和 rar 格式相关的实质性操作。
      if (!(rp = fopen(rarname, "rb")))//为二进制读打开文件
      . . . . . .
      while (!(feof(rp)))
      {
                ch = fgetc(rp) ;         //二进制读,合法操作
                fputc(ch , rp) ;         //从同一个文件读写数据不知有何意义?
      }
      . . . . . .

czy94n7y12r 发表于 2019-3-5 21:23:21

jackz007 发表于 2019-3-5 21:17
代码逻辑很乱,楼主是否可以把实现思路线索大致说一下,看你的代码无非就是简单的二进制文件复制, ...

谢谢大佬,还是太粗心,一直找不到问题点!!!太感谢了

czy94n7y12r 发表于 2019-3-5 21:26:32

我还是新手,就是看了教程,要把jpg和rar的文件合并到一个新的文件当中,最后的时候不小心写错了,谢谢大佬的指点,以后会继续努力的。
页: [1]
查看完整版本: 急急急!求大神帮助看一下jpg转rar代码问题