我已经使用一个结构如下写入二进制文件: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做的伎俩。该阵列正在适当填充;这只是我使用的输出方法。谢谢。 –