debug assertion tailed

zfmcs51 2009-07-28 03:54:39
以下是我的源码,在vc++6.0环境下,程序执行到 fgets(line,15,fp);这一行时,就会报错,几天了还没解决
目的是想把temp.txt文件的数据一行一行读出来.我的qq:411762697.希望能得到高手指点.
#include <stdio.h>
#include <conio.h>

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

FILE *fp;
char line[10000];
main(void)
{
if((fp=fopen("E:\\09GPLB\GAME-TXT\temp.txt","r"))==NULL)
{
fgets(line,15,fp);
printf("%s",line);
getch();
fclose(fp);
}

}
...全文
43 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shakeyou123 2009-07-28
printf("%s\n",line);
把这里面的\n去掉,fgets末尾自动加回车换行的,另外在return 1前加个printf("\n");
回复
zfmcs51 2009-07-28
谢谢shakeyou123的正确指点.你说的很正确,谢谢!
回复
danxuezx 2009-07-28
您的if里面的比较有效吗?
回复
shakeyou123 2009-07-28
#include <stdio.h>
#include <conio.h>

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

FILE *fp;
char line[10000];
int main()
{
if((fp=fopen("E:\\test.txt","r"))!=NULL)
{
while(!feof(fp))
{
fgets(line,1024,fp);
printf("%s\n",line);
}
}
fclose(fp);
return 1;

}

自己写了个,楼主fp=fopen("E:\\09GPLB\GAME-TXT\temp.txt","r")==NULL这地方应该是!=NULL才对,只有文件成功打开才进行读操作,还有路径中应该用\\(转义字符),fgets在读到回车换行结束,第二个参数的含义是读了1024(默认值)个字符后仍未读到回车换行则结束,相当于是一次所能读到的最多字符数
回复
zfmcs51 2009-07-28
非常感谢jingzhougrong这位前辈的提示,搞定了,我把正确的再给大家共享:
#include <stdio.h>
#include <conio.h>

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

FILE *fp;
char line[10000];
main(void)
{
if((fp=fopen("E:\\09GPLB\\GAME-TXT\\temp.txt","r"))!=NULL)
{
fgets(line,15,fp);
printf("%s",line);
getch();
fclose(fp);
}

}
回复
jingzhongrong 2009-07-28
你的文件路径写错,路径中的\应使用转义符即:
E:\\09GPLB\\GAME-TXT\\temp.txt
另外逻辑上也有问题,fp为NULL执行读取?肯定有问题了。
回复
danxuezx 2009-07-28
if((fp=fopen("E:\\09GPLB\GAME-TXT\temp.txt","r"))==NULL)

这句话是什么意思?
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告