如何从二进制文件中读取整个结构数组

时间:2013-04-02 08:14:23

标签: arrays structure

你能帮我解决一下这段代码吗? 我的问题是我无法从二进制文件中读取整个结构。(我已经完成了写作部分btw) 我在C中创建了一个结构

struct inventory
{
    char c_name[30];
    char model[30];
    char color[30];
    float p_price;
    float s_price;
    float profit;
}c_inven[100];

我想要做的是阅读它并将其发送到其他功能,将其存储在另一个结构中。 这是我用来阅读的代码

fread(&c_inven,sizeof(inventory),1,cars);

我正在使用此函数调用

发送它
sort(c_inven);
*printing[1]*

和这个函数头来接收它     void sort(struct inventory sort_inven [100]) 但是当我使用for循环打印值时,它只打印c_inven [0] .xxxxxx的值,当我移动到c_inven时返回空格。[1]。

请帮帮我。

1 个答案:

答案 0 :(得分:0)

您的fread电话只读一个条目。你需要打电话

fread(&c_inven,sizeof(struct inventory),100,cars);

假设您在c_inven指向的内存中存储了足够的内存。

此外,如果您检查fread的返回值,它会告诉您它读取了多少条目。

打印c_inven[1]打印出任何内容,可能是内存中的下一个变量。