我的文件包含:
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();
答案 0 :(得分:0)
您必须使用数据的 stride 。由于标准库不支持以任何方式读取跨步数据,因此要么读取整个文件,然后运行for循环从该数据创建对象,要么在for循环中进行整个读取,之后跳过sizeof(int)
每个对象。