【问题标题】:Difficulty Declaring Structure结构声明困难
【发布时间】:2016-10-05 05:02:53
【问题描述】:

我目前是个菜鸟。所以我一直在学习专门定义和声明它们的结构。所以在这个示例中,我遇到的问题是:

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

非常感谢任何帮助,我确信我犯了一个非常简单的错误!

院长

【问题讨论】:

    标签: visual-c++ data-structures scanf declare


    【解决方案1】:

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

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

    topleft 是 type_RECTANGLE 的成员变量,所以你可以使用 mybox.topleft。但是您使用的是 topleft.x ,这里 topleft 是一个 int 变量,而 x 不是其中的任何成员。所以你不能以这种方式接受输入。 如果您想为左上角输入输入,请尝试以下操作:

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

    【讨论】:

    • 我需要保留这一行 scanf("%d", &mybox.topleft.x);那么有什么方法可以让我以不同的方式声明 type_RECTANGLE 来完成这项工作吗?
    • 那么你应该将 topleft 声明为 type_COORD。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    • 2019-12-30
    相关资源
    最近更新 更多