C语言无法打开文件(急!)

本人电脑里装了VS和codeblocks,可是都是不好使,代码如下,求指导:
#include "stdlib.h"
#include "stdio.h"
void main()
{
FILE *fp;
char filename[20]={0};
gets(filename);
if((fp=fopen(filename,"w"))!=NULL)
{
fclose(fp);
}
else
printf("file open failed!\n");
}
然后打开一个已经存在的D盘txt文件,结果却是这个程序停止工作,然后用调试器,显示“0xC0000005: 读取位置 0x00000045 时发生访问冲突。”不知道出了什么问题,望各位大神指导啊~

代码在VC6环境下测试通过。不是代码问题。输入也没有问题,只要一个斜杠就可以。
检查一下是否有其他程序也在占用该文件,可以把除了编译器以外的所有窗口都关掉再运行。
再试试把fp=fopen(filename,"w")的w改成r试试。追问

可是就变成了“按任意键继续”文件没有打开的迹象啊...

追答

文件打开是后台操作,并不是真有一个记事本窗口会打开。“打开”是指程序获得了文件的首地址,然后可以对此文件进行操作。在以下分支里加入fprintf函数,你会发现文件里多了一行字,这就是文件曾被打开的证据。
if((fp=fopen(filename,"w"))!=NULL)
{
fprintf(fp,"hello world!");

fclose(fp);
}

追问

原来是这样,我刚学不太懂呢,那如果我想输入"-o"空格“文件名”,表示打开文件,那怎么改呢?
就是 输入
-o filename 按下回车键,打开文件,要怎么办呢?

追答

正巧以前答过这个问题,网址写参考资料里,供参考。

参考资料:http://zhidao.baidu.com/question/503449469.html?oldq=1

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-02
程序本身毫无问题,你把你输入的文件路径发出来看看,或许是路径格式不对,应该是d://1.txt这种路径格式才对。追问

追答

斜线要两道,D:\\aaa.txt

第2个回答  2012-12-02
你输入“\”时要输入两次,这样“\\"。追问

试过了,没有用啊

追答

那就不知道了。

第3个回答  2012-12-02
你的程序我刚试着运行了!没问题啊?难道是你输入的路径名称有问题?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网