我正在尝试从包含 100 个 double 值的二进制文件中读取数值数据并将其存储在名为 myArray 的数组中。当我打印 myArray 时,没有显示任何内容,就好像 myArray 从未被填充过一样。感谢您的帮助。
int main()
{
int file_len;
ifstream infile;
infile.open("mybinfile.bin", ios::binary | ios::in);
if (!infile.is_open())
{
cout << "Error in opening the file. " << endl;
}
else
{
const int file_len = 100;
std::vector<char> myVect;
myVect.resize(file_len);
int i = 0;
infile.read((char *) (&temp), sizeof(char));
myVect[i] = temp;
while(!infile.eof())
{
myVect[i] = temp;
i++;
infile.read((char *) (&temp), sizeof(char));
}
for (int i = 0; i < 100 ; i++)
{cout << i << ": " << myVect[i]<< endl;}
}
infile.close();
return 0;
}
最佳答案
这里
infile.read((char*)&myArray, file_len * sizeof(double));
您将指向指针的指针传递给double。应该是
infile.read((char*)myArray, file_len * sizeof(double));
让我想知道为什么你没有看到崩溃,因为写入随机内存几乎从来没有结果。
关于c++ - 将二进制文件中的数值存储到数组中 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26735428/