下面是用到的代码:
//初始化链表
Status InitList(LinkList &L)
{
L.head = (LNode*)malloc(sizeof(LNode));
if (!L.head)exit(OVERFLOW);
L.length = 0;
L.head->next = NULL;
return OK;
}
//尾插法创建单链表
Status CreateFromTail(LinkList &L)
{
LNode s,*r=L.head;
s = (LNode)malloc(sizeof(LNode));
fp = fopen("C:/Users/名字/source/student_info.txt", "r");
if (fp==NULL)
{
printf("打不开\n");
return OK;
}
while (fscanf(fp, "%d\t\t%s\t\t%s\t\t%s\t\t%s\n", &s->data.num, s->data.name, s->data.sex, s->data.dorm, s->data.tel) != EOF)
{
s->next = r->next;
r->next = s;
r = s;
++L.length;
s = (LNode*)malloc(sizeof(LNode));
}
fclose(fp);
return OK;
}
//打印文件
void PrintElem(LinkList L)
{
LNode* p;
p = L.head->next;
printf("当前的结点数为:%d\n", L.length);
while (p)
{
printf("%d\t\t%s\t\t%s\t\t%s\t\t%s\n", p->data.num, p->data.name, p->data.sex, p->data.dorm, p->data.tel);
p = p->next;
}
printf("\n");
}
int main()
{
int n;
LinkList L;
InitList(L);
CreateFromTail(L);
PrintElem(L);
}
比如前三个,汉字输出不一样了,但是后面字母是对的