鱼C论坛

 找回密码
 立即注册
查看: 2944|回复: 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

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

╭(╯3╰)╮
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-4-26 09:26:59 | 显示全部楼层
学习了!,,,,,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-26 11:52:02 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

  7.         printf("选择的文件名: ");
  8.         scanf("%s",filename_1);
  9.         printf("选择的图片名: ");
  10.         scanf("%s",filename_2);
  11.         printf("结合的图片名: ");
  12.         scanf("%s",filename_3);

  13.         if(!(fp1=fopen(filename_1,"rb")))
  14.         {
  15.                 printf("Cannot Open the file!\n");
  16.                 exit(0);
  17.         }
  18.         if(!(fp2=fopen(filename_2,"rb")))
  19.         {
  20.                 printf("Cannot Open the file!\n");
  21.                 exit(0);
  22.         }
  23.         if(!(fp3=fopen(filename_3,"wb+")))
  24.         {
  25.                 printf("Cannot Open the file!\n");
  26.                 exit(0);
  27.         }

  28.         while(!feof(fp2))
  29.         {
  30.                 ch=fgetc(fp2);
  31.                 fputc(ch,fp3);
  32.         }
  33.         fclose(fp2);


  34.         while(!feof(fp1))
  35.         {
  36.                 ch=fgetc(fp1);
  37.                 fputc(ch,fp3);
  38.         }
  39.         fclose(fp1);

  40.         fclose(fp3);
  41.                
  42.         printf("成功合成!\n\n");
  43.         system("pause");
  44. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

结果.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

楼主不会是图片和rar的压缩包没放在那个程序的目录下吧!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

图片和rar压缩包跟源程序放在一个文件夹了啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

亲 ,我试了一下,应该是放的文件的位置的问题,我是把它们放在一个文件夹了,应该怎么放呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

程序应该没问题,你要注意一下文件名和输入的名字一致,还有合成的顺序问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

我试了好多遍都不行,也找不到错误,文件名一定没错的,我还不能笨到几十遍都写错名字吧,依您的高见可能是什么问题呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

如有不好之处,多谢指出!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

我刚来,还不知道怎么加分。。。。我看看哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

肿么给你加分呀?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

这个无所谓= =
你问题倒是解决没?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

木有。。我试了好多遍了 怎么都不行呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

具体如图:

ScreenClip.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

具体如图:

肿么办呀,我的这个程序怎么总成功不了啊,我快吐血了,呜呜~~~~(>_<)~~~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 18:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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