文件怎么没法成功打开?

qazwhl845174869 2010-07-31 09:57:17
#include<stdio.h>
#include<stdlib.h>
main()
{
FILE *fp;//申明文件指针fp,用来保存建立文件的地址
char filename[40],mode[5];
while(2)
{
printf("Enter a filename:");
gets(filename);//从键盘输入文件名,放到字符数组filename中存放
printf("Enter a mode(max 3 characters):");//输入文件模式,放到字符数组mode中
gets(mode);
if((fp=fopen(filename,mode))!=NULL)
{//以输入的模式打开文件
printf("Successful opening %s in mode %s\n",filename,mode);
fclose(fp);//关闭打开的文件
puts("Enter x to exit,any other to continue.");//按下x键,程序结束
if((getche())=='x')
break;
else
continue;
}
else
{
printf("Error opening file %s in mode %s\n",filename,mode);
puts("Enter x to exit,any other to continue.");//按下x键,程序结束
if((getche())=='x')
break;
else
continue;
}//else分支结束
}//while分支结束
}//主函数结束
假如我在E盘下有一文件1.c
运行该程序时让我输入文件名:e:\\1.c
让我输入打开模式:r
结果没打开啊?????
为什么呢?请高手指教,先谢谢了!
...全文
67 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qazwhl845174869 2010-07-31
  • 打赏
  • 举报
回复
谢谢了
搞定了!
swl82560397pq 2010-07-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bluejays 的回复:]
应该输入 e:\1.c
只有1个\
这和在代码里写字符串不一样
[/Quote]

up!
沭水河畔 2010-07-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lishanchao 的回复:]
引用 1 楼 bluejays 的回复:
应该输入 e:\1.c
只有1个\
这和在代码里写字符串不一样

“\”是转义字符,源码中“\\”代表实际的“\”。
[/Quote]
用作换行的“\n”,Tab键“\t”,都是这样的。
沭水河畔 2010-07-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bluejays 的回复:]
应该输入 e:\1.c
只有1个\
这和在代码里写字符串不一样
[/Quote]
“\”是转义字符,源码中“\\”代表实际的“\”。
bluejays 2010-07-31
  • 打赏
  • 举报
回复
楼主可以试一下改成fopen("e:\\1.c", "r")
如果能打开,就是字符串赋值的问题;
如果还是打不开,那就是文件的问题了。
bluejays 2010-07-31
  • 打赏
  • 举报
回复
应该输入 e:\1.c
只有1个\
这和在代码里写字符串不一样

69,373

社区成员

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

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