列に配置されたデータを表すバイナリ ファイルがあります。
各列には、次のように異なるデータ形式があります。
- カラム 1: 8 バイト (unsigned long int)
- 列 2: 4 バイト (int)
- カラム 3: 4 バイト (float)
これらのファイルをC++で読み取る最良の方法は何ですか?matlabで実行できますが、C++でそれを行う方法についてはあまり手がかりがありません
これらの値が適切であると仮定すると、次のようになります。
unsigned long int dataMember0 = 0;
int dataMember1 = 0;
float dataMember2 = 0.0;
std::ifstream fileStream("file.bin", std::ios::in | std::ios::binary);
fileStream.read((char*)&dataMember0, sizeof(unsigned long int));
fileStream.read((char*)&dataMember1, sizeof(int));
fileStream.read((char*)&dataMember2, sizeof(float));
char ポインターはバイト配列として読み取られるため、キャストします (char は 1 バイトです)。このプロセスをループしたい場合:while(fileStream) {...}
読み取るものがなくなるまで実行します