#include #include #include #include #include "MyClass.hpp" bool ReadMyClassHeader(std::ifstream &ifs, MyClass myclass, int &vec_size) { if (!ifs.read((char*)& myclass.var1, sizeof(int))) return false; if (!ifs.read((char*)& myclass.var2, sizeof(double))) return false; if (!ifs.read((char*)& vec_size, sizeof(int))) return false; return true; } int main() { std::string filename = "test.bin"; std::ifstream ifs(filename, std::ios::binary); std::vector vec_myclass; MyClass myclass; int vec_size = 0; while ( ReadMyClassHeader(ifs, myclass, vec_size) ) { // ここで vector 以外の読み取りが終わっている myclass.vec.clear(); myclass.vec.reserve(vec_size); for ( int i = 0; i < vec_size; i++ ) { double tmp; ifs.read((char*)& tmp, sizeof(double)); myclass.vec.push_back(tmp); } vec_myclass.push_back(myclass); } for ( auto imyclass : vec_myclass ) { // 適当な処理 } std::exit(0); }