FILE 读入结构体数据
以下是代码,但是读入文本数据后输出的却是乱码,请高手指点一下,那个文本我就不上传了:
建一个txt文件命名为"students.txt"
里面输入几行学生信息如:
周星星 男 22 2061121101
李甜甜 女 22 2061121102
丘嘲 男 22 2061121121
#include<stdio.h>
#include<iostream.h>
////////////////////////////
typedef struct st{
char name[10];
char sex[5];
int age;
int num;
}st;
//////////////////////////
class Data{
public:
Data *next;
st data;
};
///************main
void main()
{
Data *L,*q;
Data *p;
L=new Data;
q=L;
q->next=0;
//读入数据
FILE *fp;
if((fp=fopen("students.txt","r"))==0)
{
cout<<"cannot open students.txt";
return;
}
for(int i=0;!feof(fp);i++)
{ p=new Data;
fread(p,sizeof(st),1,fp);
p->next=q->next;
q->next=p;
q=p;
}
//输出数据
Data *s=L->next;
while(s)
{
cout<<s->data.name<<" ";
cout<<s->data.sex<<" ";
cout<<s->data.age<<" ";
cout<<s->data.num<<" ";
cout<<endl;
s=s->next;
}
fclose(fp);
}