fopen打不开文件

Alexander_QQ 2013-09-22 11:28:54
我有如下程序:
void main()
{
FILE *fp = fopen("f:\\test.txt","w+"); //直接输入文件名可以打开
if (fp == NULL)
{
printf("%s\n",strerror(errno));
return;
}
return;
}
这个程序可以直接打开文件test.txt,但是倘若我想将文件名作为一个参数传给main函数来打开,那么就不可以,如下
void main(int argc, char *argv[])
{
FILE *fp = fopen(argv[1],"w+"); //路径作为参数就打不开程序,为什么
if (fp == NULL)
{
printf("%s\n",strerror(errno));
return;
}
return;
}

请问这是为什么,我出现过好多次这样的情况了
...全文
747 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq120848369 2013-09-23
  • 打赏
  • 举报
回复
命令行输入的时候就没必要\\了, 单个\就可以了。那只是为了C语言字符串里转义\用的。
旋转的棍子 2013-09-23
  • 打赏
  • 举报
回复
3L正解
AnYidan 2013-09-23
  • 打赏
  • 举报
回复
引用 1 楼 max_min_ 的回复:

printf("%s\n",argv[1]); // 把 argv[1]路径给打印出来看看,看看是不是正确的路径吧!
FILE *fp = fopen(argv[1],"w+");
看看你究竟传入了神马
是_这样吗 2013-09-23
  • 打赏
  • 举报
回复
打印一下传入的参数就知道错在哪了。。
图灵狗 2013-09-23
  • 打赏
  • 举报
回复
明显是文件路径输入不正确,你可以试试这样输入:

test.exe "f:\test.txt"
引用 楼主 wzsbll 的回复:
我有如下程序: void main() { FILE *fp = fopen("f:\\test.txt","w+"); //直接输入文件名可以打开 if (fp == NULL) { printf("%s\n",strerror(errno)); return; } return; } 这个程序可以直接打开文件test.txt,但是倘若我想将文件名作为一个参数传给main函数来打开,那么就不可以,如下 void main(int argc, char *argv[]) { FILE *fp = fopen(argv[1],"w+"); //路径作为参数就打不开程序,为什么 if (fp == NULL) { printf("%s\n",strerror(errno)); return; } return; } 请问这是为什么,我出现过好多次这样的情况了
引用 楼主 wzsbll 的回复:
我有如下程序: void main() { FILE *fp = fopen("f:\\test.txt","w+"); //直接输入文件名可以打开 if (fp == NULL) { printf("%s\n",strerror(errno)); return; } return; } 这个程序可以直接打开文件test.txt,但是倘若我想将文件名作为一个参数传给main函数来打开,那么就不可以,如下 void main(int argc, char *argv[]) { FILE *fp = fopen(argv[1],"w+"); //路径作为参数就打不开程序,为什么 if (fp == NULL) { printf("%s\n",strerror(errno)); return; } return; } 请问这是为什么,我出现过好多次这样的情况了
赵4老师 2013-09-23
  • 打赏
  • 举报
回复
max_min_ 2013-09-22
  • 打赏
  • 举报
回复

printf("%s\n",argv[1]); // 把 argv[1]路径给打印出来看看,看看是不是正确的路径吧!
FILE *fp = fopen(argv[1],"w+");

69,373

社区成员

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

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