```
```#include<stdio.h>
#include<stdlib.h>
#define N sizeof(struct Signal)
typedef struct Signal
{
char Name[10]; //名字
int KB; //开放状态
float Pos; //地址
int Type; //闭锁継电器状态
struct Signal *next,*front;
}Date,*Si;
void read(struct Signal*head) //将文件中的内容读出到链表中,返回值为表头地址
{
FILE fp; //文件指针
int n=0;
struct Signalp2,*p,*pr=NULL;
if(fp=fopen("abc","r+")==NULL); //以二进制的方式打开文件
//if(fp==NULL)
{
printf("cannot open file\n");//如有错则输出cannot open file
exit(0);
}
while(!feof(fp)) //判断文件位置标志是否移动到文件末尾
{
n++;
fscanf(fp,"%s,%d,%f,%d",p->Name,p->KB,p->Pos,p->Type))
/* p=(struct Signal*)malloc(N); //向内存申请一段空间
fread(p,N,1,fp); */ //将fp所指向的文件中的内容赋给p
if(n==1)
{
head=p;
p2=p;
}
else //创建链表
{
pr=p2;
p2->next=p;
p2=p;
}
}
if(pr!=NULL)
{
pr->next=NULL;
}
else
{
head=NULL;
}
fclose(fp); //关闭文件
}