2013-04-02 53 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]打印所有內容,可能是內存中的下一個變量。

相關問題