C++ 为什么我在阅读二进制文本时会得到单字节和大数字?

C++ 为什么我在阅读二进制文本时会得到单字节和大数字?,c++,c,list,binary,fstream,C++,C,List,Binary,Fstream,我正在从二进制文件中读取一个使用ifstream构建数组的列表。以下是我的构建数组函数: int buildArrays (Player players[]) { ifstream inFile; inFile.open( "binary_hockey", ios::binary ); if ( inFile.fail() ) { cout << "The binary_hockey input file did not open"; return 0

我正在从二进制文件中读取一个使用ifstream构建数组的列表。以下是我的构建数组函数:

    int buildArrays (Player players[])
{

ifstream inFile;

inFile.open( "binary_hockey", ios::binary );

if ( inFile.fail() )
   {
   cout << "The binary_hockey input file did not open";
   return 0;
   }


Player onePlayer;
int index = 1;

inFile.read( (char *) &onePlayer, sizeof(Player) );

while (inFile)
{
    index++;
    inFile.read( (char *) &onePlayer, sizeof(Player) );
}

inFile.close();
return index-1;

}
int构建数组(玩家[])
{
河流充填;
infle.open(“二进制曲棍球”,ios::二进制);
if(infle.fail())
{

cout您没有阅读
玩家的代码。您的代码应该如下所示:

while (inFile)
{
 inFile.read( (char *) &players[index++], sizeof(Player) );
}

文件是如何创建的?可能是以不同于
ios::binary
的模式创建的?播放机的数量是否正确?如果文件只有一个播放机,了解会发生什么情况将很有趣。另外:请将此标记为“c++”为了帮助人们找到它。你能发布更多的代码吗,比如player类和player的生成?我解决了它。正在将它输入错误的数组。谢谢。每当我尝试这样做时,我都会出现以下错误:player players阴影参数和players[index++]中的运算符[]不匹配
while (inFile)
{
 inFile.read( (char *) &players[index++], sizeof(Player) );
}