2014-02-25 136 views
0

我一直在做數據讀取和創建特定結構的任務。 在一個結構(其本身包含另一個結構)日食顯示「字段」出生'具有不完整的類型「。 我已經通過網絡搜索,但它看起來像有一些具體的錯誤。 (代碼在這裏被縮短版)C中結構和功能的結構

typedef struct{ 
    int birthday_day; 
    int birthday_month; 
    int birthday_year; 
} birthday; 

typedef struct{ 
    int id; 
    char name[20]; 
    struct birthday birth; 

}user; 

user usser[100]; 
int i; 

for (i=0;i<100;i++){ 
    fscanf(input, "%s %i %i %i %i", usser[i].id, 
      usser[i].name, usser[i].birth.birthday_day, usser[i].birth.birhday_month, 
      usser[i].birth.birthday_year 
}; 
+0

和序列的不同參數。和'scanf'部族需要一個指向參數的指針。 (例如'&usser [i] .id') – BLUEPIXY

+0

BLUEPIXY,謝謝。雖然,我注意到只有在試圖啓動程序 – user3349993

回答

3
typedef struct _birthday{ 
    int birthday_day; 
    int birthday_month; 
    int birthday_year; 
} birthday; 

typedef struct{ 
    int id; 
    char name[20]; 
    struct _birthday birth; 

}user; 
在你的榜樣「生日」

typedef struct{ 
    int id; 
    char name[20]; 
    birthday birth; 

}user; 

是一種新型的,並不需要關鍵字「結構」。這就是你得到錯誤的原因。您可以使用此類型或爲結構命名,並將其與關鍵字struct結合使用。

+0

謝謝!它幫助! 只要收到足夠的積分就可以回答此問題 – user3349993

+0

如果有幫助,您應該接受。 –

+0

避免以前導下劃線開頭的名稱。使用'typedef struct birthday {...} birthday;'是完全安全的,因爲結構標籤位於與typedef名稱不同的命名空間中。你也可以有'typedef struct {...生日快樂; } user;'或者用'struct user {...生日誕生; }用戶;'。 –