设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1292|回复: 1
打印 上一主题 下一主题

FILE 读入结构体数据

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-4 00:54:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下是代码,但是读入文本数据后输出的却是乱码,请高手指点一下,
那个文本我就不上传了:
建一个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);
}
2#
发表于 2009-11-4 00:54:04 | 只看该作者
这个是C++额,为什么不用ifstream呢?那个应该比你用fopen好多了。
如果txt里面有中文的话要注意一下保存文件的编码格式,某些编码方式C++可能会不认识。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 19:30 , Processed in 0.106494 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表