标题:如何用结构体读取txt数据?
只看楼主
yxb0001
Rank: 2
等 级:论坛游民
帖 子:50
专家分:35
注 册:2009-9-9
结帖率:100%
已结贴  问题点数:20 回复次数:5 
如何用结构体读取txt数据?
txt文本数据范例如下:
      日期        开盘        最高        最低        收盘        成交量        成交额
05/15/2009    11.53    11.69    11.43    11.55    1913500    22128956.000
05/18/2009    11.60    11.92    11.43    11.84    3420700    40091824.000
05/19/2009    12.07    12.07    11.60    11.67    2211700    25978724.000
05/20/2009    11.70    11.90    11.35    11.40    1949700    22353948.000
05/21/2009    11.40    11.40    10.70    10.87    3330100    36678032.000
05/22/2009    10.70    10.92    10.60    10.70    2508200    26997016.000
05/25/2009    10.54    10.95    10.50    10.88    1663600    17948432.000
05/26/2009    10.80    10.99    10.71    10.76    1708100    18498696.000
05/27/2009    10.78    10.90    10.65    10.90    1425200    15385793.000
06/01/2009    11.00    11.19    10.89    11.08    2078399    22979084.000
06/02/2009    11.25    11.85    11.09    11.36    2909166    33491306.000
06/03/2009    11.25    11.45    11.20    11.37    1960718    22111660.000
06/04/2009    11.26    11.60    11.20    11.27    1480500    16788844.000
06/05/2009    11.29    11.42    11.04    11.11    1651510    18422328.000
06/08/2009    11.12    11.79    10.89    11.58    2733500    30797804.000
06/09/2009    11.58    11.84    11.34    11.82    4727900    55108836.000
06/10/2009    11.90    11.96    11.70    11.76    3204320    37943792.000
06/11/2009    11.76    11.76    11.40    11.61    3578400    41295512.000
06/12/2009    11.74    11.95    11.52    11.72    3469600    40973296.000
06/15/2009    11.80    11.88    11.48    11.60    2229500    25852336.000
06/16/2009    11.50    11.51    11.10    11.38    3070700    34575692.000
06/17/2009    11.46    11.60    11.27    11.41    3217000    36661608.000

如何使用结构体读取上述数据?
搜索更多相关主题的帖子: 结构体 数据 txt 
2009-10-05 01:51
fuyu_bjtu
Rank: 2
等 级:论坛游民
帖 子:3
专家分:10
注 册:2009-8-28
得分:10 
我的想法是定义一个结构体,里面包含日期,开盘,最高,最低...等变量,然后通过文件读写的方式,以空格为标记分别赋值吧,我的想法啊,不可取别取笑,新手
2009-10-05 09:47
阿冲
Rank: 2
等 级:论坛游民
帖 子:29
专家分:40
注 册:2009-10-5
得分:10 
用类最好~
2009-10-05 13:26
yxb0001
Rank: 2
等 级:论坛游民
帖 子:50
专家分:35
注 册:2009-9-9
得分:0 
如果数据量大(至少几万条记录),下列程序只能读取一部份(大约180条记录),为什么?如何才能全部读取?
#include "iostream.h"
#include "fstream.h"
#include "stdlib.h"
 
struct goudata
{
    char datyt[15];
    float openp;
    float highp;
    float lowp;
    float closep;
    long vol;
    double mvol;
};
goudata sh600842[10000];
 
void main( )
{
    //编写程序
    ifstream infile("sh600842.txt",ios::in|ios::binary);     
    if(!infile.is_open())
    {
        cout<<"No such file!"<<endl;
        abort( );
    }
    for(int i=0;i<10000;i++)
    {
        infile.read((char *)&sh600842[i], sizeof(sh600842[i]));
        cout<<sh600842[1].datyt<<"\t"<<sh600842[i].openp
        <<"\t"<<sh600842[i].highp<<"\t"<<sh600842[i].lowp
        <<"\t"<<sh600842[i].closep<<"\t"<<sh600842[i].vol
        <<"\t"<<sh600842[i].mvol<<endl;
        if(infile.eof()) break;
    }
    infile.close( );
}

运行结果是180条左右,程序又开始从文本文件之首开始读取,如此一直循环不止。请问为什么?还有一个问题就是第一行数字总是输不出,为什么?

[ 本帖最后由 yxb0001 于 2009-10-6 00:27 编辑 ]
2009-10-05 21:09
yxb0001
Rank: 2
等 级:论坛游民
帖 子:50
专家分:35
注 册:2009-9-9
得分:0 
如果使用CFile为什么通不过编译器?其错误如下:
error C2065: 'CFile' : undeclared identifier

程序为:

#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
 
void main()
{
    CFile file;
    file.Open("abc.txt",CFile::modeReadWrite);
    BYTE buffer[0x1000];
    UINT remaining=file.GetLength();
    UINT read;
    while(remaining)
    {
        read=file.Read(buffer,sizeof(buffer));
        remaining-=read;
    }
    file.Close();
}
2009-10-06 13:00
ly903323153
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-1-1
得分:0 
LZ现在会了吗,教一教我这个初学者吧
2014-05-17 20:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-287619-1-1.html




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

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