我从cs50 2018开始做马里奥问题集,只写了第一部分来从用户那里获取整数。这是我到目前为止所拥有的:
#include <stdio.h>
#include <cs50.h>
int main(void)
{
int n;
do {
n = get_int("Number of rows: ");
}
while (n < 0 || n > 23);
}
生成的错误是这样的:
mario.c:9:9: error: implicit declaration of function 'get_int' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
n = get_int("Number of rows: ");
^
1 error generated.
我的理解是,这个错误通常意味着您没有包含该函数的正确库,但我已经包含了 CS50 库。有人可以帮忙吗?
注意我的工作区已有几年历史,我相信 CS50 库此时已更新。这是导致问题的原因吗?我无法创建新的哈佛 CS50 工作区,因为我已经有一个现有工作区,而且我不是高级成员(member)。
谢谢, 丹
最佳答案
确保您使用的是最新版本的 cs50.h
。一年前(或两三年)进行了一次修订,添加了 get_int()
,并弃用了之前使用过的 GetInt()
。由于您包含 cs50.h
header 但未获取声明,因此该 header 在某种意义上是不完整的。如果它是空的,那就有问题了;如果是旧版本,那就有问题了;否则,目前还不清楚问题出在哪里。您也许可以使用 grep get_int/usr/local/include/cs50.h
(对于安装 cs50.h
的目录)。 – 乔纳森·莱夫勒 12 小时前
关于cs50函数 'get_int'的隐式声明在mario的C99中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48391118/