怎么用函数显示文本文件
#include<stdio.h>
#include<stdlib.h>
//#include "windows.h"
typedef struct std //学生的数据结构类型
{ int no;
char stunum[10];
char stuname[10];
char sex[5];
char major[10];
int english;
int math;
int pc;
}stu;
typedef struct Node// 单链表的结点类型
{
stu data;
struct Node *next;
}LNode, *LinkList;
LinkList L; //定义头指针
stu s1;
char str[81];
void CreateList(LinkList L)
{
LinkList p,q;
FILE *fp;
int i;
if((fp=fopen("abc.txt","r"))==NULL)
{
printf("打开文件失败,请检查路径设置!\n\n");
exit(1);
}
fgets(str,81,fp);
printf("\t%s\n",str);
L=(LinkList)malloc(sizeof(LNode));
if(L==NULL)
{
printf("失败 !");
exit(0);
}
L->next=NULL;
q = L;
while(!feof(fp))
{
p=(LinkList)malloc(sizeof(LNode));
if(p==NULL)
{
printf("失败 !");
exit(0);
}
p->next=NULL;
fscanf(fp,"%d%s%s%s%s%d%d%d",&p->data.no,p->data.stunum,p->data.stuname,p->data.sex,p->data.major,&p->data.english,&p->data.math,&p->data.pc);
p->next = q->next;
q->next = p;
q = p;
}
fclose(fp);
printf("\n");
p=L->next;
while(p!=NULL)
{
printf("\t%d\t%s\t%s\t%s\t%s\t%d\t%d\t%d\n",p->data.no,p->data.stunum,p->data.stuname,p->data.sex,p->data.major,p->data.english,p->data.math,p->data.pc);
p=p->next;
}
printf("\n");
}
//显示学生成绩
void DisplayList(LinkList L)
{
}
//主函数
void main()
{
int i;
// system("color 0E");
while(1)
{
printf("******学生成绩管理系统******\n");
printf("****1.创建链表 ******\n");
printf("****2.全部显示 ******\n");
printf("****3.插入记录 ******\n");
printf("****4.删除记录 ******\n");
printf("****0.退出系统 ******\n");
printf("请输入您的选择:\n");
scanf("%d",&i);
switch(i)
{
case 1:CreateList(L);break;
case 2:DisplayList(L);break;
}
}
}
怎么在DisplayList(L)这个函数里把我的文本文件显示出来?高手帮帮忙啊!
#include<stdlib.h>
//#include "windows.h"
typedef struct std //学生的数据结构类型
{ int no;
char stunum[10];
char stuname[10];
char sex[5];
char major[10];
int english;
int math;
int pc;
}stu;
typedef struct Node// 单链表的结点类型
{
stu data;
struct Node *next;
}LNode, *LinkList;
LinkList L; //定义头指针
stu s1;
char str[81];
void CreateList(LinkList L)
{
LinkList p,q;
FILE *fp;
int i;
if((fp=fopen("abc.txt","r"))==NULL)
{
printf("打开文件失败,请检查路径设置!\n\n");
exit(1);
}
fgets(str,81,fp);
printf("\t%s\n",str);
L=(LinkList)malloc(sizeof(LNode));
if(L==NULL)
{
printf("失败 !");
exit(0);
}
L->next=NULL;
q = L;
while(!feof(fp))
{
p=(LinkList)malloc(sizeof(LNode));
if(p==NULL)
{
printf("失败 !");
exit(0);
}
p->next=NULL;
fscanf(fp,"%d%s%s%s%s%d%d%d",&p->data.no,p->data.stunum,p->data.stuname,p->data.sex,p->data.major,&p->data.english,&p->data.math,&p->data.pc);
p->next = q->next;
q->next = p;
q = p;
}
fclose(fp);
printf("\n");
p=L->next;
while(p!=NULL)
{
printf("\t%d\t%s\t%s\t%s\t%s\t%d\t%d\t%d\n",p->data.no,p->data.stunum,p->data.stuname,p->data.sex,p->data.major,p->data.english,p->data.math,p->data.pc);
p=p->next;
}
printf("\n");
}
//显示学生成绩
void DisplayList(LinkList L)
{
}
//主函数
void main()
{
int i;
// system("color 0E");
while(1)
{
printf("******学生成绩管理系统******\n");
printf("****1.创建链表 ******\n");
printf("****2.全部显示 ******\n");
printf("****3.插入记录 ******\n");
printf("****4.删除记录 ******\n");
printf("****0.退出系统 ******\n");
printf("请输入您的选择:\n");
scanf("%d",&i);
switch(i)
{
case 1:CreateList(L);break;
case 2:DisplayList(L);break;
}
}
}