C语言 fopen为什么打开不了txt文件 10

我的部分code如下,filename已经定了为了简介就没有一起给出;我已经在在该程序的文件夹里建立了对应的txt文件,但是debug的时候老是提示程序已停止。。。。FI... 我的部分code如下,filename已经定了为了简介就没有一起给出;
我已经在在该程序的文件夹里建立了对应的txt文件,但是debug的时候老是提示程序已停止。。。。

FILE *fp;
fp=fopen(filename,"r");
if((fp=fopen(filename,"r"))==NULL)
{
printf("Input file not found.");
exit(0);
}
前面已经定义字符串filename[31]=“planetext.txt"
展开
 我来答
AA5956
推荐于2017-10-01 · TA获得超过1869个赞
知道小有建树答主
回答量:705
采纳率:72%
帮助的人:471万
展开全部

fopen这个函数是可以打开txt文件。打不开有以下原因

  1. 文件路径不对,请检查相对路径与绝对路径是否写的正确。

  2. 打开一个不存在的文件,请检查该文件是否存在

  3. 一下权限是需要在打开时文件就已经存在了

    r 以只读方式打开文件,该文件必须存在。

    r+ 以可读写方式打开文件,该文件必须存在。

    rb+ 读写打开一个二进制文件,允许读写数据,文件必须存在。

金色潜鸟
2013-11-29 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5688万
展开全部
把多写的一句 fp=fopen(filename,"r"); -- 删去。

debug的时候,可执行程序在 Debug 文件夹,你已建文件默认 必须存在于 Debug 文件夹。
filename 字符串 含文件夹和路径时,注意单斜杠要写成双斜杠。

MS VC++ 6.0 是较成熟的编译器,一个平台上产生的EXE 可在多种平台上工作。
程序头文件以前,写上一句(一行宏定义):
#define WINVER 0x0602
就能很好地在 Win-8 Win-7 等上运行。
追问
还是不行诶。。。我加了define删了多写的一句还是不行。。。。。。。
我用calloc给filename命名输入字符串之后,在fopen里打开文件,debug的时候一直说程序stop working~
用puts来检查文件名,用strlen检查长度,比如文件名 a.txt,puts显示出来也是a.txt,strlen计算长度是5,都是没有错误的~
追答
查实际文件名,和你程序用的文件名是否一样。然后
开一个命令窗(DOS cmd 窗),进入 Debug 文件夹。
运行你的程序。
--------------------------------
FILE *fp;
char filename[]="planetext.txt";
if((fp=fopen(filename,"r"))==NULL)
{
printf("Input file not found.");
exit(0);
} else printf("Good !\n");
------------------------------------
还有办法,先建a.txt,再读:
FILE *fp;
char filename[]="a.txt";
int a,b;
fp=fopen(filename,"w");
fprintf(fp,"123 456\n");
fclose(fp);
fp=fopen(filename,"r");
fscanf(fp,"%d %d",&a,&b);
fclose(fp);
printf("a=%d b=%d\n",a,b);
system("pause");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a599203716
2013-11-29 · 超过16用户采纳过TA的回答
知道答主
回答量:74
采纳率:0%
帮助的人:33.6万
展开全部
FILE *FP
fp = fopen("F:\\filename.txt","r"); //打开F盘中的filename文件,要这样打开
if(fp==NULL)
{
printf("Input file not found.");
exit(0);
}
更多追问追答
追问
那如果要建立一个新的txt怎么办呢,fopen建立的txt文件就是在visual studio对应project的根目录里的吧
那如果要建立一个新的txt怎么办呢,fopen建立的txt文件就是在visual studio对应project的根目录里的吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
流星不死
2013-11-29 · TA获得超过1662个赞
知道小有建树答主
回答量:1621
采纳率:0%
帮助的人:1315万
展开全部
"filename.txt"才对
更多追问追答
追问
没啦~我在前面已经定义字符串filename[31]=“planetext.txt"了~所以应该不是这个原因吧~
追答
去掉一句fp=fopen(filename,"r");试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱吃米糕
2013-11-29 · TA获得超过261个赞
知道小有建树答主
回答量:365
采纳率:0%
帮助的人:191万
展开全部
不知道你fp定义时候,有没有初始化 在 =fopen() 前令其等于NULL。其他什么问题我就不知道了
更多追问追答
追问
诶?要怎么等于NULL呢?要加什么语句吗
追答
就是FILE *fp = NULL;  但是我不确定你的问题是由这个引起的哈,我只是猜可能没有初始化会出问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式