鱼C论坛

 找回密码
 立即注册
查看: 2353|回复: 17

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

[复制链接]
发表于 2014-4-25 16:48:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
FN_G9(3AU8CKO%TUZ%P})VB.jpg 43@)`Q6T(`9P1K1PVGJNL.jpg
//将一个.jpg文件和一个.rar文件合成一张图片.jpg,当把这张图片名字后缀改成.rar时,就会出现之前.rar.里的内容
#include<stdio.h>
#include<stdlib.h>
void main()
{
        FILE *f_pic  , *f_file , *f_finish;
        char pic_name[20] , file_name[20] , finish_name[20] ;
        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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-4-26 08:23:10 | 显示全部楼层
if(!(f_finish = fopen(finish_name , "wb+")))//二进制形式写入

╭(╯3╰)╮
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-26 09:26:59 | 显示全部楼层
学习了!,,,,,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-26 11:52:02 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-26 13:21:41 | 显示全部楼层
下面是我的源代码,我没看出来有什么不同喂,我的成功了
#include <stdio.h>
#include <stdlib.h>

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

        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");
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-26 14:11:48 | 显示全部楼层
qq小小七 发表于 2014-4-26 11:52
我怎么试了一下还是不行。结果跟原来一样

结果.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-26 14:13:42 | 显示全部楼层

楼主不会是图片和rar的压缩包没放在那个程序的目录下吧!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-26 14:54:54 | 显示全部楼层
枫界易城 发表于 2014-4-26 14:13
楼主不会是图片和rar的压缩包没放在那个程序的目录下吧!

图片和rar压缩包跟源程序放在一个文件夹了啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-26 14:58:45 | 显示全部楼层
sidfate 发表于 2014-4-26 13:21
下面是我的源代码,我没看出来有什么不同喂,我的成功了

亲 ,我试了一下,应该是放的文件的位置的问题,我是把它们放在一个文件夹了,应该怎么放呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-26 20:35:42 | 显示全部楼层
qq小小七 发表于 2014-4-26 14:58
亲 ,我试了一下,应该是放的文件的位置的问题,我是把它们放在一个文件夹了,应该怎么放呢?

程序应该没问题,你要注意一下文件名和输入的名字一致,还有合成的顺序问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-26 23:37:05 | 显示全部楼层
sidfate 发表于 2014-4-26 20:35
程序应该没问题,你要注意一下文件名和输入的名字一致,还有合成的顺序问题

我试了好多遍都不行,也找不到错误,文件名一定没错的,我还不能笨到几十遍都写错名字吧,依您的高见可能是什么问题呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-27 17:50:08 | 显示全部楼层
qq小小七 发表于 2014-4-26 23:37
我试了好多遍都不行,也找不到错误,文件名一定没错的,我还不能笨到几十遍都写错名字吧,依您的高见可能 ...

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

如有不好之处,多谢指出!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-27 18:13:36 | 显示全部楼层
飞驰吧!少年 发表于 2014-4-27 17:50
根据你的问题,
1. 指定盘符的路径, 比如“D:\\a.txt”,盘符名最好是大写
2. 在程序中指定盘符路径, ...

我刚来,还不知道怎么加分。。。。我看看哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-27 18:14:07 | 显示全部楼层
sidfate 发表于 2014-4-26 20:35
程序应该没问题,你要注意一下文件名和输入的名字一致,还有合成的顺序问题

肿么给你加分呀?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-27 18:35:37 | 显示全部楼层
qq小小七 发表于 2014-4-27 18:14
肿么给你加分呀?

这个无所谓= =
你问题倒是解决没?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-27 18:37:14 | 显示全部楼层
sidfate 发表于 2014-4-27 18:35
这个无所谓= =
你问题倒是解决没?

木有。。我试了好多遍了 怎么都不行呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-27 18:45:40 | 显示全部楼层
qq小小七 发表于 2014-4-27 18:37
木有。。我试了好多遍了 怎么都不行呢

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

具体如图:

ScreenClip.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-4 14:04:08 | 显示全部楼层
sidfate 发表于 2014-4-27 18:45
用我的代码再试一遍。在代码的文件中弄一张图片和一个压缩文件。

具体如图:

肿么办呀,我的这个程序怎么总成功不了啊,我快吐血了,呜呜~~~~(>_<)~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 09:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表