新微赢技术网

标题: FILE 读入结构体数据 [打印本页]

作者: √龙    时间: 2009-11-4 00:54
标题: 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);
}
作者: ‖蠻忝謃☆    时间: 2009-11-4 00:54
这个是C++额,为什么不用ifstream呢?那个应该比你用fopen好多了。
如果txt里面有中文的话要注意一下保存文件的编码格式,某些编码方式C++可能会不认识。




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2