有如下代码,目的是读出文本文件中的字符串,后建立链表,但是读的第一个串总是不对,而后面的就对了,是什么原因,当再次调用此函数时,结果却面目全非
struct CFilelist *ReadFileName(CString &m_filelist)
{

CFilelist *p=NULL,*s=NULL,*pt=NULL;
FILE *fp1;
CString str=_T("");
//pt=new struct CFilelist;

if ((fp1=fopen(m_filelist,"r"))!=NULL)
{
while ( !feof(fp1))
{
if (pt == NULL)
{
fscanf(fp1,"%s",str);
pt=new struct CFilelist;
pt->fileName=new char[str.GetLength()+1];
strcpy(pt->fileName,str);
p=pt;
}
else
{
fscanf(fp1,"%s",str);
s=new struct CFilelist;
s->fileName=new char[str.GetLength()+1];
strcpy(s->fileName,str);
p->next=s;
p=s;
}
}
//pt=pt->next;
p->next=NULL;
fclose(fp1);
return pt;
}
else
{
AfxMessageBox("打开文件时出错!!!");
exit(0);
}
}