0

我有向量的文件:

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();
4

1 回答 1

0

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

于 2012-08-16T13:31:25.797 回答