2016-10-05 3 views
0

Ich bin derzeit ziemlich noob. Ich habe also über Strukturen gelernt, die sie spezifisch definieren und deklarieren. Also in diesem Beispiel die Frage, die ich bin immer in der Zeile:Schwierigkeit, Struktur zu deklarieren

scanf("%d", &mybox.topleft.x); 

„mybox“ rot unterstrichen, und ich habe es einen Fehler. Ich verstehe nicht warum! Ich habe mybox als eine Variable vom Typ type_RECTANGLE deklariert. Hier ist ein Teil des Codes:

typedef struct type_COORD 
{ 
int x, y; 
}; 

typedef struct type_RECTANGLE 
{ 
int topleft; 
int bottomrt; 
}; 

int main() 
{ 
int length, width, area; 
char ch; 
type_RECTANGLE mybox; 

//input coordinates 
printf("Enter top left x coordinate..."); 
scanf("%d", &mybox.topleft.x); 
while ((ch = getchar()) != '\n' && ch != EOF) {} 

Jede Hilfe sehr geschätzt wird, ich bin sicher, ich bin einen sehr einfachen nooby Fehler zu machen!

Dean

Antwort

0

Hier, wenn Sie ein code

scanf("%d", &mybox.topleft.x); 

topleft ist Membervariable von type_RECTANGLE, so dass Sie mybox.topleft verwenden können. Aber Sie verwenden topleft.x, und hier ist topleft eine int-Variable und x ist kein Mitglied davon. Sie können also auf diese Weise keine Eingaben machen. Wenn Sie Eingabe zu übernehmen für diesen topleft versuchen:

scanf("%d", &mybox.topleft); 
+0

ich verpflichtet bin, die Linie scanf zu halten ("% d", & mybox.topleft.x); also gibt es eine Möglichkeit, ich könnte type_RECTANGLE anders deklarieren, um diese Arbeit zu machen? – Dwhaley

+0

dann sollten Sie als type_COORD topleft deklarieren. – Malav

Verwandte Themen