用C语言写一个读文件的程序,程序闪退,详细见问题补充

写一个C语言控制台程序,在脱离VC6.0运行环境打开.exe文件时程序闪退,首先确定的是加了conio.h这个头文件了,在return0;前写了getch();了。出现闪... 写一个C语言控制台程序,在脱离VC6.0运行环境打开.exe文件时程序闪退,首先确定的是加了conio.h这个头文件了,在return 0;前写了getch();了。出现闪退我发现是用fopen以只读方式打开一个文件时就会发生这个现象,如果是只写呢,就没事,只要程序里有读文件的操作就会闪退,为了表达清楚我还是贴代码吧,尽管代码可以说基本没有东西。
int main(void)
{
FILE *fpr, *fpw;

if((fpr = fopen("file1.txt","r")) == NULL)
{
printf("It can not be opened the file!\n");
exit(0);
}
/* if((fpw = fopen("file2.txt","w")) == NULL)
{
printf("It can not be opened the file!");
exit(0);
}*/

//fclose(fpw);
fclose(fpr);

getch();
//while(1);
return 0;
}
代码就这个,啥也没干,原本我是操作文件了的,但是我把程序摘成这样,还是会闪退,即使返回前加死循环也是闪退。不知道为什么,希望大侠们能指点指点小弟,小弟不胜感激
展开
 我来答
tcjxm6
2014-12-07 · 超过13用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:24万
展开全部
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件

仔细看条件,既然是返回NULL,那么肯定是因为你的文件,是可读写文件,W是打开只写文件,你用W+应该不会有问题。
各方发行人
2014-12-07 · TA获得超过215个赞
知道小有建树答主
回答量:372
采纳率:0%
帮助的人:209万
展开全部
把所有的exit(0)注释掉
追问

exit(0)是让程序终止的一个库函数,按道理只要那个条件不成立就不会执行,但是在VC6.0环境里程序是正确的,读文件也是能读到的,但就是脱离该环境直接点击.exe运行不行,现在按您的注释掉后,点击.exe程序就会出错。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式