| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4269 人关注过本帖
标题:为什么我的fopen无法找到绝对路径,看代码,求救
只看楼主 加入收藏
popwang
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-2-3
结帖率:0
收藏
已结贴  问题点数:20 回复次数:12 
为什么我的fopen无法找到绝对路径,看代码,求救
本帖最后由 popwang 于 2010-2-24 19:39 编辑

#include<stdlib.h>
#include<stdio.h>
main()
{FILE *fp;int ch;char *path="c:\\downloads\\msdn.chm";
  fp=fopen(path,"r");
  if(fp==NULL)
  {printf("error");  
    exit(1);}
  while((ch=fgetc(fp))!=EOF)
    putchar(ch);
  fclose(fp);
  return 0;
  }
我的C:\DOWNLOADS文件夹中确实有着msdn.chm文件,就算是别的文件我也试过了,但是都不可以;
不过可以在C根目录下打开指定的文件(我只有一个C盘)
为什么就是无法返回地址呢,返回的总是NULL,各位高手,请发表见解
搜索更多相关主题的帖子: 代码 路径 fopen 
2010-02-25 12:34
邶风
Rank: 5Rank: 5
等 级:职业侠客
帖 子:287
专家分:335
注 册:2009-1-20
收藏
得分:3 
程序没有大问题 可能涉及到系统盘的用户权限吧
要不 你用分区软件分出来一个盘
(只有一个C盘怎么用

#include
2010-02-25 13:18
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:3 
char *path="c:\\downloads\\msdn.chm";中“downloads”太长了,应小于等于8个字符!

你也可以改成: char *path="c:\\downlo~1\\msdn.chm";  试试!

★★★★★为人民服务★★★★★
2010-02-25 13:19
幸运之星
Rank: 4
来 自:吉林
等 级:业余侠客
帖 子:275
专家分:239
注 册:2009-6-5
收藏
得分:3 
回复 3楼 cnfarer
呵呵 误解啊

不信楼主你吧那个r改成w就是写
把原文件先放到别的地方你看看根本不是路径的问题 嘿嘿

还有应该是你代码的问题 因为我改成msn.txt也不能正常运行

我现在帮你看看啊
2010-02-25 13:28
幸运之星
Rank: 4
来 自:吉林
等 级:业余侠客
帖 子:275
专家分:239
注 册:2009-6-5
收藏
得分:0 
改成msdn.txt可以正常读出文件内容
我感觉读取chm文件好像这样是不可以的
因为chm不是文本文件 他是
通过浏览器就是IE内核翻译的文件
2010-02-25 13:31
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:3 

if(fp==NULL)
  {printf("error");
    exit(1);}

改成:
if(fp==NULL)
  {perror("error");
    exit(1);}

然后告诉我们输出有什么变化。
2010-02-25 13:35
幸运之星
Rank: 4
来 自:吉林
等 级:业余侠客
帖 子:275
专家分:239
注 册:2009-6-5
收藏
得分:0 
不用改他的程序也能运行正确
只不过里面全是乱码
这个
你们说是不是啊
我用的是MYTC能正确运行但是VC就会出现找不到文件的现象
2010-02-25 13:47
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
读出来乱码就是对的!

按我改的TC2,VC,GCC都以都能通过!不改TC2编译后运行出错!

★★★★★为人民服务★★★★★
2010-02-25 14:11
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
因为TC2是DOS时代的产物,编译后的产品与VC++编译后的程序运行环境是不一样的!

这样处理cmh文件就像用记事本打开一样!不乱才怪!

★★★★★为人民服务★★★★★
2010-02-25 14:21
幸运之星
Rank: 4
来 自:吉林
等 级:业余侠客
帖 子:275
专家分:239
注 册:2009-6-5
收藏
得分:0 
我可没按你的改啊 嘿嘿 我是直接用楼主的啊 呵呵
2010-02-25 14:38
快速回复:为什么我的fopen无法找到绝对路径,看代码,求救
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015506 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved