【发布时间】:2011-12-01 22:59:56
【问题描述】:
我已经使用如下结构编写了一个二进制文件:
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 ...
我认为 blocks[i].data 应该只给我属于索引 i 的 char[32],但它却给了我结构中从该索引到结构末尾的每个“数据”元素。我确信这是我对它的工作原理的误解。我的问题是:如何获取 blocks[i].data 所代表的 char[32]?
【问题讨论】: