C++ 为什么我在阅读二进制文本时会得到单字节和大数字?
我正在从二进制文件中读取一个使用ifstream构建数组的列表。以下是我的构建数组函数: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
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) );
}