我已經使用一個結構如下寫入二進制文件:C++二進制文件讀入結構
struct block{
char data[32];
};
所以我結束了基本上是一個大的二進制文件的完整的char [32]。數據被格式化爲特定的位置,因此抓取特定的信息並不困難。不過,我試圖讀取像這樣的文件:
int lines=0;
std::ifstream inputFile("file.bin",std::ios::binary);
while (!inputFile.eof())
{
inputFile.read(blocks[lines].data, sizeof(block));
lines++;
}
inputFile.close();
lines--;
,然後像這樣顯示的:
std::cout<<"block 1: "<<blocks[0].data<<std::endl;
// etc ...
我以爲塊[I]。數據應該只是給我的char [32]它屬於索引i,但它將結構中的每個「data」元素都從該索引提供給結構的末尾。我相信這是我對這種工作原理的誤解。我的問題是:我如何才能獲得由塊[i] .data表示的char [32]?
std :: cout.write做的伎倆。該陣列正在適當填充;這只是我使用的輸出方法。謝謝。 –