求教,创建列表时为什么只读一行字符?真的真的很急
WORDNODE* Create()//构建链表
{
int len=sizeof(WORDNODE),j,n,m;
char gwords[M+N]={0};
WORDNODE *p1,*p2,*h;
FILE *fp;
do
{
fp=fopen("dict.TXT","r");
}while(fp==NULL);
p1=p2=h=(WORDNODE*)malloc(len);
while(fgets(gwords,N+M,fp)!=NULL);
{printf("%s",gwords);
j=0;
m=0;
p1=p2;
while(!isspace(gwords[j]))
{
p1->Eword[j]=gwords[j];
j=j+1;
}
p1->Eword[j]='\0';//向Eword赋值
for(n=j+1;n<(int)strlen(gwords);n++)
{
p1->Chinese[m]=gwords[n];
m=m+1;
}
p1->Chinese[m]='\0';//向Chinese赋值
p2=(WORDNODE*)malloc(len);
p1->next=p2;//申请内存并把地址赋给next
}
p1->next=NULL;//next指空
free(p2);//这句有意义么?有什么意义?去掉的话会有影响吗?
fclose(fp);
return h;
}