【问题标题】:istream to vector with struct conversionistream 到带有结构转换的向量
【发布时间】:2012-08-16 12:58:10
【问题描述】:

我有一个向量的文件:

typedef struct {
    float fX; ///< position X
    float fY; ///< position Y
    int iSize; ///< Size of point   
} structParams;

但我想将其读取为几乎相同结构但没有 iSize 的向量

typedef struct {
    float fX; ///< position X eq. structParams.fX
    float fY; ///< position Y eq. structParams.fY
} structPositionParams;

我可以用与

类似的方式吗?
ifstream inStr("file.dat");
vector<structPositionParams>  oVector;
oVector.(numOfElements);
inStr.read((char*)&oVector[0], sizeof(structPositionParams) * numOfElements);
inStr.close();

【问题讨论】:

    标签: c++ vector struct ifstream readfile


    【解决方案1】:

    您必须利用数据的步幅。由于标准库不支持以任何方式读取跨步数据,因此您要么读取整个文件,然后运行 ​​for 循环从该数据创建对象,要么在 for 循环中进行整个读取,在每个对象之后跳过 sizeof(int) .

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-25
      • 2014-06-11
      • 2013-12-11
      • 2021-02-20
      • 2013-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多