c++ - 将二进制文件中的数值存储到数组中 - C++

标签 c++ file-io binary

我正在尝试从包含 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/

相关文章:

python - 获取文件的最后n行,类似于tail

c++ - 编译存储在外部文本文件中的数组(使用命令行g++编译的C++)

c++ - C++ 代码从 Linux 到 Windows 的转换

c++ - 如何在 POCO 中访问 get 变量

ruby - 如何将 64 位二进制字符串转换为 ruby​​ 中的双 float ?

swift - 快速将 4 个字节的 Float 给出一个意想不到的小结果

binary - 在 julia 中生成所有可能的排列

c++ - 如何使用 libmicrohttpd/microhttpd 创建 HTTP POST 请求

java - 加密和解密 ArrayList<String>

java - 是否可以同时读取和写入文件?