qq小小七 发表于 2014-4-25 16:48:34

为什么总是结果总是找不到文件


//将一个.jpg文件和一个.rar文件合成一张图片.jpg,当把这张图片名字后缀改成.rar时,就会出现之前.rar.里的内容
#include<stdio.h>
#include<stdlib.h>
void main()
{
        FILE *f_pic, *f_file , *f_finish;
        char pic_name , file_name , finish_name ;
        char ch ;
        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("can not open the picture %s\n" , pic_name);
                return ;
        }
        if(!(f_file = fopen(file_name , "rb")))//二进制读取形式打开
        {
                printf("can not open the file %s\n" , file_name);
                return ;
        }
        if(!(f_finish = fopen(finish_name , "wb")))//二进制形式写入
        {
                printf("can not open the file %s\n" , finish_name);
                return ;
        }
        //feof测试是不是文件的结尾
        while( !(feof(f_pic)))
        {
                ch = fgetc(f_pic) ;
                fputc(ch , f_finish) ;
               
        }
        fclose(f_pic);
        while( !(feof(f_file)))
        {
                ch = fgetc(f_file) ;
                fputc(ch , f_finish) ;
               
        }
        fclose(f_file);
        fclose(f_finish);
        system("pause");
}//自动对齐===ctrl A+ Alt F8

sidfate 发表于 2014-4-26 08:23:10

if(!(f_finish = fopen(finish_name , "wb+")))//二进制形式写入

╭(╯3╰)╮

枫界易城 发表于 2014-4-26 09:26:59

学习了!,,,,,

qq小小七 发表于 2014-4-26 11:52:02

sidfate 发表于 2014-4-26 08:23 static/image/common/back.gif
if(!(f_finish = fopen(finish_name , "wb+")))//二进制形式写入

╭(╯3╰)╮

我怎么试了一下还是不行。结果跟原来一样

sidfate 发表于 2014-4-26 13:21:41

下面是我的源代码,我没看出来有什么不同喂,我的成功了#include <stdio.h>
#include <stdlib.h>

void main()
{
        FILE *fp1,*fp2,*fp3;
        char ch,filename_1,filename_2,filename_3;

        printf("选择的文件名: ");
        scanf("%s",filename_1);
        printf("选择的图片名: ");
        scanf("%s",filename_2);
        printf("结合的图片名: ");
        scanf("%s",filename_3);

        if(!(fp1=fopen(filename_1,"rb")))
        {
                printf("Cannot Open the file!\n");
                exit(0);
        }
        if(!(fp2=fopen(filename_2,"rb")))
        {
                printf("Cannot Open the file!\n");
                exit(0);
        }
        if(!(fp3=fopen(filename_3,"wb+")))
        {
                printf("Cannot Open the file!\n");
                exit(0);
        }

        while(!feof(fp2))
        {
                ch=fgetc(fp2);
                fputc(ch,fp3);
        }
        fclose(fp2);


        while(!feof(fp1))
        {
                ch=fgetc(fp1);
                fputc(ch,fp3);
        }
        fclose(fp1);

        fclose(fp3);
               
        printf("成功合成!\n\n");
        system("pause");
}

枫界易城 发表于 2014-4-26 14:11:48

qq小小七 发表于 2014-4-26 11:52 static/image/common/back.gif
我怎么试了一下还是不行。结果跟原来一样

枫界易城 发表于 2014-4-26 14:13:42

枫界易城 发表于 2014-4-26 14:11 static/image/common/back.gif


楼主不会是图片和rar的压缩包没放在那个程序的目录下吧!

qq小小七 发表于 2014-4-26 14:54:54

枫界易城 发表于 2014-4-26 14:13 static/image/common/back.gif
楼主不会是图片和rar的压缩包没放在那个程序的目录下吧!

图片和rar压缩包跟源程序放在一个文件夹了啊

qq小小七 发表于 2014-4-26 14:58:45

sidfate 发表于 2014-4-26 13:21 static/image/common/back.gif
下面是我的源代码,我没看出来有什么不同喂,我的成功了

亲 ,我试了一下,应该是放的文件的位置的问题,我是把它们放在一个文件夹了,应该怎么放呢?

sidfate 发表于 2014-4-26 20:35:42

qq小小七 发表于 2014-4-26 14:58 static/image/common/back.gif
亲 ,我试了一下,应该是放的文件的位置的问题,我是把它们放在一个文件夹了,应该怎么放呢?

程序应该没问题,你要注意一下文件名和输入的名字一致,还有合成的顺序问题

qq小小七 发表于 2014-4-26 23:37:05

sidfate 发表于 2014-4-26 20:35 static/image/common/back.gif
程序应该没问题,你要注意一下文件名和输入的名字一致,还有合成的顺序问题

我试了好多遍都不行,也找不到错误,文件名一定没错的,我还不能笨到几十遍都写错名字吧,依您的高见可能是什么问题呢

飞驰吧!少年 发表于 2014-4-27 17:50:08

qq小小七 发表于 2014-4-26 23:37 static/image/common/back.gif
我试了好多遍都不行,也找不到错误,文件名一定没错的,我还不能笨到几十遍都写错名字吧,依您的高见可能 ...

根据你的问题,
1. 指定盘符的路径, 比如“D:\\a.txt”,盘符名最好是大写
2. 在程序中指定盘符路径, 用strcpy()函数。
3. 楼上说的二进制文件格式。(楼上这么积极,你都不加两分呀?)

如有不好之处,多谢指出!

qq小小七 发表于 2014-4-27 18:13:36

飞驰吧!少年 发表于 2014-4-27 17:50 static/image/common/back.gif
根据你的问题,
1. 指定盘符的路径, 比如“D:\\a.txt”,盘符名最好是大写
2. 在程序中指定盘符路径, ...

我刚来,还不知道怎么加分。。。。我看看哈

qq小小七 发表于 2014-4-27 18:14:07

sidfate 发表于 2014-4-26 20:35 static/image/common/back.gif
程序应该没问题,你要注意一下文件名和输入的名字一致,还有合成的顺序问题

肿么给你加分呀?

sidfate 发表于 2014-4-27 18:35:37

qq小小七 发表于 2014-4-27 18:14 static/image/common/back.gif
肿么给你加分呀?

这个无所谓= =
你问题倒是解决没?

qq小小七 发表于 2014-4-27 18:37:14

sidfate 发表于 2014-4-27 18:35 static/image/common/back.gif
这个无所谓= =
你问题倒是解决没?

木有。。我试了好多遍了 怎么都不行呢

sidfate 发表于 2014-4-27 18:45:40

qq小小七 发表于 2014-4-27 18:37 static/image/common/back.gif
木有。。我试了好多遍了 怎么都不行呢

    用我的代码再试一遍。在代码的文件中弄一张图片和一个压缩文件。

具体如图:


qq小小七 发表于 2014-5-4 14:04:08

sidfate 发表于 2014-4-27 18:45 static/image/common/back.gif
用我的代码再试一遍。在代码的文件中弄一张图片和一个压缩文件。

具体如图:

肿么办呀,我的这个程序怎么总成功不了啊,我快吐血了,呜呜~~~~(>_<)~~~~
页: [1]
查看完整版本: 为什么总是结果总是找不到文件