2013-12-12 60 views
-5

幫我解決這個編碼......它一直說了錯誤: -fwrite那裏有bug,但我不知道如何?

它說fwrite有問題了..

// #define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h> 

    struct prod 
    { 
     char ProductCode [5]; 
     int Expired_year; 
     char Product_country [25]; 
    }product; 
    struct prod product; 

void main() 
{ 

    char x ; 
    FILE* data; 
    data = fopen("product.dat","wb"); 

    while(x != 'N') 
    { 
     printf("Enter product code :"); 
     scanf("%s", product.ProductCode); 
     printf("Enter expired year of the product :"); 
     scanf("%d", &product.Expired_year); 
     fflush(stdin); 
     printf("Enter product country :"); 
     scanf("%[^\n]", product.Product_country); 
     fflush(stdin); 

     fwrite(&prod, sizeof(product), 1, data); 

     printf("\nPlease enter anykey to continue or 'N' to stop: "); 
     scanf("%c", &x); 
     fflush(stdin); 
     printf("\n"); 
    } 
    fclose(data); 

} 
+1

我會調用代碼「C」,而不是「C++」。 – molbdnilo

+2

你應該告訴我們錯誤是什麼。 –

+0

fwrite(&prod,sizeof(product),1,data); – user3095905

回答

3
fwrite(&prod, sizeof(product), 1, data); 

prod並不是指一個struct實例,但到結構的名稱,它應該是

fwrite(&product, sizeof(product), 1, data); 
+0

爲什麼prod不是struct的名字?我是這樣做的基礎上的語法 – user3095905

+0

'prod'是類型的名稱,而不是任何實際的變量。 – Jack

+0

它是fwrite的第一個參數是變量名嗎? – user3095905

1

錯誤的語法fwrite()。 它應該是,

fwrite(&product, 1, sizeof(product), data); 
0

的第一個參數需要一個指向一些數據,但&督促無效。 prod是一個類型,而不是一個實例變量。您可能想將其更改爲fwrite (&product, ...)

0

首先,您聲明struct prod product兩次。 其次,fwrite()的正確sintax是fwrite(&product,sizeof(struct prod),1,data);

相關問題