2016-10-05 45 views
0

目前我还是个小菜鸟。所以我一直在学习专门定义和声明它们的结构。所以在这个例子中,我得到的问题是在线:申报结构难度

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错误!

院长

回答

0

在这里,如果你看到下面的代码

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

左上是type_RECTANGLE的成员变量,所以你可以使用mybox.topleft。但是你使用的是topleft.x,这里的topleft是一个int变量,x不是这个的任何成员。所以你不能以这种方式进行输入。 如果你想利用输入左上试试这个:

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

我必须保持线 的scanf( “%d”,&mybox.topleft.x); 有没有什么办法可以用不同的方式声明type_RECTANGLE来做这个工作? – Dwhaley

+0

那么你应该声明为type_COORD。 – Malav