本人电脑里装了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 时发生访问冲突。”不知道出了什么问题,望各位大神指导啊~
检查一下是否有其他程序也在占用该文件,可以把除了编译器以外的所有窗口都关掉再运行。
再试试把fp=fopen(filename,"w")的w改成r试试。追问
可是就变成了“按任意键继续”文件没有打开的迹象啊...
追答文件打开是后台操作,并不是真有一个记事本窗口会打开。“打开”是指程序获得了文件的首地址,然后可以对此文件进行操作。在以下分支里加入fprintf函数,你会发现文件里多了一行字,这就是文件曾被打开的证据。
if((fp=fopen(filename,"w"))!=NULL)
{
fprintf(fp,"hello world!");
fclose(fp);
}
原来是这样,我刚学不太懂呢,那如果我想输入"-o"空格“文件名”,表示打开文件,那怎么改呢?
就是 输入
-o filename 按下回车键,打开文件,要怎么办呢?
正巧以前答过这个问题,网址写参考资料里,供参考。
斜线要两道,D:\\aaa.txt
试过了,没有用啊
追答那就不知道了。