为什么用fopen打开文件失败?

cdo 2006-01-13 09:59:14
FILE *file;
file = fopen("1.txt", "r+");

我把1.txt放在我执行程序相同的目录下,发现打开文件失败。后来把文件放到D盘根目录下,把程序改成file = fopen("D:\\1.txt", "r+");这样就成功了。

为什么呀?难道是不支持相对路径吗?
...全文
8225 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Leugin 2006-01-16
  • 打赏
  • 举报
回复 2
不同编译器有不同的默认的当前路径
用"w"模式创建一个文件,找找文件在哪就知道正确路径了...(万试万灵)
bo.cui 2006-01-15
  • 打赏
  • 举报
回复
编译器的问题.要是TC,相对路径进不是当前C文件路径了!
 而且好多编译器都可以设置相对路径位置的!
FreedomAllen 2006-01-15
  • 打赏
  • 举报
回复
应该是你把路径弄错了,C语言是支持相对路径的,或者是你打开方式不对,试试看cn_archer(阡陌纵横)老兄的方法 改成wr+
RainWindy 2006-01-14
  • 打赏
  • 举报
回复
system("dir 1.txt");
getch();
看看文件在不在,同时也可以知道当前目录
iwantfat 2006-01-13
  • 打赏
  • 举报
回复
两个可能的原因,
1,相对路径错了,
2,你的文件名命名的有问题,比如你打开fopen("1.txt","r");你在相对路径下创建文本文件的的时候 将该文件命名为1 就可以了,不要加后缀.txt .
megaboy 2006-01-13
  • 打赏
  • 举报
回复
楼主是不是用tc啊?

当你直接用文件名“1.txt”的时候,tc不是在程序运行的目录里寻找这个文件的,而是在tc的当前工作目录(注意不是驱动器的当前目录)里,默认情况下,tc的当前工作目录是bin,你把文件放这里就能自动找到了。
iamcaicainiao 2006-01-13
  • 打赏
  • 举报
回复
是不是路径放错了。
jsjjms 2006-01-13
  • 打赏
  • 举报
回复
看fopen返回错误的类型,就知道了.
有时候还可能是你放的路径不对,相对路径肯定是支持的。
changhao12 2006-01-13
  • 打赏
  • 举报
回复
怎么会不支持呢?我试过的啊,支持的!
cn_archer 2006-01-13
  • 打赏
  • 举报
回复
C支持相对路径的。
对于你的问题,我建议可以用以下的方法来测试。
把你fopen()中的参数从r+改成 wr+ ,当前目录下不放数据文件,看看你的程序会把文件创建在哪,这样就清楚了。
zcz0918 2006-01-13
  • 打赏
  • 举报
回复
不会是传说中的rpwt吧?
cherling 2006-01-13
  • 打赏
  • 举报
回复
同意megaboy(飞天御剑流之杀神一刀斩)哈,不是程序运行的目录,而是当前的工作目录。可以用fopen("1.txt",“wr+”)看看文件被建在哪个目录下就知道当前的工作目录了。
Bible_Chou 2006-01-13
  • 打赏
  • 举报
回复
应该是你自己把路径弄错了。

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧