各位高手帮我看看,弄好了在加50分

来源:百度知道 编辑:UC知道 时间:2024/06/17 15:05:12
编译正确,但运行时出现内存不能为read。大家看看问题出在哪里,耐心点好,弄好了在加50分!!
#include<stdio.h>

void main()
{
char a[30],c[30],d[30],e[30],f[30];
FILE *fi;
if((fi=fopen("board.htm","r"))==NULL)
{
printf("cannot open this file\n");
exit(0);
}
fgets(a,19,fi);
while(a!="origin = new Post(")
{
fi++;
fgets(a,19,fi);
}
fgets(c,20,fi);
while(c!="lastreply = new Pos")
{
fi++;
fgets(c,20,fi);
}
fgets(d,5,fi);
while(d!="2008")
{
fi++;
fgets(d,5,fi);
}
fi++;
fgets(e,3,fi);
fi++;
fgets(f,3,fi);
printf("%s-%s-%s",d,e,f);
fclose(fi);

}
各位,改了,还是那样

内存越界...,判断数组元序号.
多输出调试语句....

while( a!= "origin = new Post(" )
这句我没看懂...
楼主比较数组指针和常量地址?
strcmp吧.
额滴神啦.

内存不够

你是C语言还是别的?
while(a!="origin = new Post(")
while(d!="2008")
等几句,在C语言中不是这么比较的.
要用strcmp()

fi++;

文件fopen("board.htm","r")) 返回的值,可以这样操作?

晕,..我怎么不会.我用他运行了下,完全正常啊...
要不就是你指针有问题.

C++吧,有时候你点了运行之后如果没把弹出来的框关闭再修改了再点运行就会出现这种情况,不过我不知道你是不是这种情况.