【发布时间】:2021-04-03 06:55:30
【问题描述】:
好的,所以我一直在学习 cs50 EDX 课程并一直在使用他们的 ide。我今天继续输入非常简单的代码,看看我是否记得。我不知道我是傻还是什么,但是当我输入这段代码时,我收到一条错误消息:“格式指定类型'char *'但参数的类型为'string *'(又名'char **' ) [-Werror,-Wformat] scanf("%s", &name);"
我有其他代码具有相似的几乎相似的代码,并且运行良好。请帮助,将不胜感激。(我是初学者)
#include <cs50.h>
#include <stdio.h>
int main(void)
{
string name;
printf("Name: ");
scanf("%s", &name);
printf("Hello %s", name);
}
从 youtube 复制的代码对我不起作用:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char name[10];
printf("Name: ");
scanf("%s", &name);
printf("Hello %s", name);
}
【问题讨论】:
-
我不知道
string在那个cs50.h中是什么类型,但我可以看到错误是你传递了一个char**。尝试向我们展示定义string的标头,或尝试将*name传递给scanf。 -
请不要发送不相关的标签。
-
将 *name 传递给 scanf 是什么意思?我认为字符串只是 ide 附带的。
-
因为我们不知道
string来自哪里以及它是什么。scanf获取分配的char数组的地址,或指向char内存的指针。string不是 C 标准的一部分,因此为了帮助您,您必须描述string是什么,例如查看它的标题。 -
Idk 它来自哪里,因为如果删除标题,它仍然知道字符串是什么。我认为它是 ide 的一部分,但我实际上不知道。我看了一个 youtube 视频,我准确地输入了他的代码,但它对我不起作用。