2016-10-05 11 views
0

私は現在かなりのnoobです。だから私はそれらを明確に定義して宣言する構造について学んできました。このサンプルでは、​​私が得ている問題は次の行にあります。難易度構造を宣言する

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

"mybox"には下線が引かれており、そこにはエラーがあります。私はなぜなのか理解していない! myboxをtype_RECTANGLE型の変数として宣言しました。ここにいくつかのコードがあります:

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) {} 

私は非常に単純なnoobyの間違いを作っていると確信しています!あなたがmybox.topleftを使用できるように

ディーンは、ここでは、コードの下に表示された場合は

答えて

0

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

TOPLEFTは、type_RECTANGLEのメンバ変数です。しかしtopleft.xを使用しています。ここでtopleftはint変数であり、xはこれのメンバーではありません。だから、このように入力することはできません。 あなたはこの試みるTOPLEFTの入力をしたい場合:

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

を私はライン のscanf( "%d個"、&mybox.topleft.x)を維持するために必要なのです。 このようにするためにtype_RECTANGLEを別の方法で宣言できる方法はありますか? – Dwhaley

+0

次に、topleftをtype_COORDとして宣言する必要があります。 – Malav