2013-04-02 55 views
2

请问您可以使用此代码来帮助我吗? 我的问题是,我无法读取整个结构从二进制文件。 (我与写作部分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]* 

而这个函数头接收它 无效排序发送它(结构库存sort_inven [100]) 但是当我用for循环打印这些值时,它只是打印c_inven [0] .xxxxxx的值,并在我移动到c_inven时返回空白空间[1]。

请帮帮我吧。

回答

0

您的fread调用只能读取一个条目。你会需要调用

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

假设你malloced足够的内存,其中c_inven点。

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

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

相关问题