C++读取文件,将文件内容读取到struct中

struct定义:

#include "stdafx.h"
//内存对齐1字节
#pragma pack(1)
 
struct Day
{
    int DateTime;
    int Open;
    int High;
    int Low;
    int Close;
};
 
#pragma pack()

指针读取:

// Test.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include "Day.cpp"
#include <sys\stat.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    fstream f;
    const char* filename = "e:\\t.dat";
    f.open(filename,ios::binary|ios::in);
 
    struct _stat info;
    _stat(filename,&info);
    int filesize = info.st_size;
    const int SIZE_OF_DAY = sizeof(Day);
    cout<<"sizeof(Day)="<<SIZE_OF_DAY<<endl;
    const int days_count = filesize/sizeof(Day);
    cout<<"day_count="<<days_count<<endl;
    Day* day = new Day[days_count];
    //Day* dayTemp=day;
    for(int i=0;i<days_count;i++)
    {
        Day* p2Day = day + i;
        f.read((char*)p2Day,SIZE_OF_DAY);
        cout<<p2Day->DateTime<<endl;
        cout<<p2Day->Close<<endl;
    }
    f.close();
    delete[] day;
    system("pause");
 
    return 0;
}

  

posted @   玉开  阅读(3537)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2007-04-07 SQL性能优化备忘
点击右上角即可分享
微信分享提示