| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2226 人关注过本帖
标题:文本文档导入到结构体中
只看楼主 加入收藏
小菜bird
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-10-15
结帖率:0
收藏
 问题点数:0 回复次数:8 
文本文档导入到结构体中
大神们,我自己定义了一个结构体和顺序表,但结构体的里面的变量复制需要从文档导入,所以我需要怎样才能把文档的内容导入到顺序表里,而且给结构体的变量按顺序赋值啊。。拜托拜托。
typedef struct PAINTER{

long number;     //9位数病历号
char name[10];    //姓名
char sex[3];    //性别
int  age;       //年龄
char grade[5];  //患者等级
char part[5];   //科室
int  blood[2];  //血压
int  pulse[3];  //脉搏
double heat;    //体温
char ch1[10];    //主治医师
char ch2[5];     //用药情况
long  time;      //住院时间
char ch3[10];    //手术名称
long time1;     //手术日期
char ch4[6];     //术后情况
int  btran;      //输血情况      
int  chooice;    //shi否预警
char ch5[8];     //记录时间

}PAINTER;

//顺序表结构体
typedef struct LIST{

    struct PAINTER List[MAXSIZE];
    int size;
}LIST;
搜索更多相关主题的帖子: 文档 导入 结构体 int char 
2018-01-16 10:28
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
文档数据格式?
2018-01-16 11:41
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
收藏
得分:0 
你可以定义一个结构体数组
2018-01-16 14:45
小菜bird
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-10-15
收藏
得分:0 
回复 2楼 吹水佬
就是TXT记事本,自己按照定义的数据结构变量顺序一行一行敲的,顺序表的长度为30,所以有30行
2018-01-17 16:40
小菜bird
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-10-15
收藏
得分:0 
回复 3楼 虫眼
可以具体一点吗?


这是我敲得一部分,不知对不对,麻烦您给指点一下
int ReadRandNum(LIST &list,int num,string strFileName){

    //读取外部文件
    ifstream ReadFile;//in file stream 文件输入流对象
    ReadFile.open(strFileName,ios::in);//打开文件,用ios::in方式打开

   char content[500]={0};//用来存储从文件中读取的数据,整行内容

    if(ReadFile.is_open())
    {
        cout<<"信息输入"<<endl;
        
        while(!ReadFile.eof())//只要文件没有读取结束 end of file
        {
            ReadFile.getline(content,500);//获取每行的内容,存储位置,数据个数
        }

    }else{
   
        cout<<"信息录入失败"<<endl;
   
    }

    int i=0;
    for(i=0;i<num;i++)
    {  

        InsertPainter(&list,i,content[i]);//将字符型转换为结构体型,并加入到链表【【这里content会报错,但是我不会改[/color]】】
    }

}




int  InsertPainter(LIST *List,int i,PAINTER painter){


    int j;

    //顺序表满,无法插入

    if(List->size>=MAXSIZE)
    {
        cout<<"顺序表已满,无法插入"<<endl;
        return 0;
    }
    else//插入位置错误
        if(i<0||i>i>List->size)
        {
            cout<<"参数i不合法"<<endl;
            return 0;
        }
        else//将pINTER加入到顺序表
        {
            List->List[i]=painter;
//////////////////////////////////////////////////////////////////
            /*for(j=0;j<18;i++)
            {
            List->List[i]=
            }*/

            List->size++;//元素个数加1
            return 1;
        }
}
2018-01-17 16:44
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
建议不要用文本文件来保存数据。
直接用结构体数据格式数据块链保存为二进制数据文件,这样在读写文件时不用转来换去,按结构体格式一块块读写就可以,数据处理效率较高且保存的数据较安全。
2018-01-18 06:33
小菜bird
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-10-15
收藏
得分:0 
回复 6楼 吹水佬
啊啊啊啊,,不太懂学的比较浅
2018-01-18 09:35
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用小菜bird在2018-1-18 09:35:42的发言:

啊啊啊啊,,不太懂学的比较浅

简单来说是这意思:
#include <stdio.h>

typedef struct PAINTER
{
    long number;     //9位数病历号
    char name[10];    //姓名
    char sex[3];    //性别
    //省略
} PAINTER;

main()
{
    FILE *fp;
    PAINTER pa;
    int i;
    printf("input: number name sex\n");
    fp = fopen("test.dat", "rb+");
    for (i=0; i<3; ++i)
    {
        scanf("%ld%s%s", &pa.number, pa.name, pa.sex);
        fwrite(&pa, sizeof(PAINTER), 1, fp);
    }
    fclose(fp);
    printf("output: number name sex\n");
    fp = fopen("test.dat", "rb");
    while (fread(&pa,sizeof(PAINTER),1,fp)==1)
        printf("%ld %s %s\n", pa.number, pa.name, pa.sex);
    fclose(fp);
}
2018-01-18 10:49
dsxktop
Rank: 2
等 级:论坛游民
威 望:1
帖 子:33
专家分:31
注 册:2018-1-13
收藏
得分:0 
有数据库吗,设置一下队列或自增长

大师兄威客 http://www.dsx.top/
2018-01-18 11:59
快速回复:文本文档导入到结构体中
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028048 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved