Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 我并没有给出任何指针,但编译器说指针和整数之间的比较?_C_Pointers_Compiler Warnings - Fatal编程技术网

C 我并没有给出任何指针,但编译器说指针和整数之间的比较?

C 我并没有给出任何指针,但编译器说指针和整数之间的比较?,c,pointers,compiler-warnings,C,Pointers,Compiler Warnings,我不断地收到这个警告。 我正在分享我的代码,请查看并告诉我指针在哪里 #include<stdio.h> int main() { int ageofUser, age; char damru[100], professionUser[20], name[20]; printf("Hello I am Damroo , your personal chatbot.\n But I can answer limited questions because I

我不断地收到这个警告。 我正在分享我的代码,请查看并告诉我指针在哪里

#include<stdio.h>

int main() {
  int ageofUser, age;
  char damru[100], professionUser[20], name[20];

  printf("Hello I am Damroo , your personal chatbot.\n But I can answer limited questions because I am in developing phase.\n so lets chat.\n So , What is your name ?\n");
  scanf("%s", &damru);

  printf("Ohkay, what is your age ?");
  scanf("%d", &ageofUser);

  printf("Ohkay , Mr. %d , What do you work ?", &ageofUser);
  scanf("%s", &professionUser);

  printf("Why don't you talk bidirectionally ?");
  if (scanf("%s", &name) == "What is your name ?");
  printf("I am damroo.");

  if (scanf("%d", &age) == "what is your age ?");
  printf("I was born on 17/02/2021");

  return 0;
}
#包括
int main(){
用户年龄;
char damru[100],professionUser[20],name[20];
printf(“您好,我是Damroo,您的个人聊天机器人。\n但我可以回答有限的问题,因为我正处于开发阶段。\n所以让我们聊天吧。\n那么,您叫什么名字?\n”);
scanf(“%s”和damru);
printf(“哦,你多大了?”);
scanf(“%d”&用户年龄);
printf(“Ohkay,%d先生,你从事什么工作?”,&ageofUser);
scanf(“%s”、&professionUser);
printf(“你为什么不双向交谈?”);
如果(scanf(“%s”,&name)=“你叫什么名字?”);
printf(“我是damroo”);
如果(scanf(“%d”,&age)=“您的年龄是多少?”);
printf(“我出生于2021年2月17日”);
返回0;
}
我只想知道指针在哪里。我找不到了。

scanf(3)的

返回值

成功时,这些函数返回成功匹配的输入项目数 分配,;这可能比提供的要少 如果早期匹配失败,则为,甚至为零

因此,不能将
scanf()
与字符串进行比较。您需要使用strcmp():

请注意,您可以直接比较字符串常量

要扫描字符数组,请不要在
scanf()
中引入符号和符号:


类似地,您永远不需要在
printf()
中输入一个与。要进行防御性编码,请始终检查
scanf()
fgets()
等的返回值。

这里您尝试使用指针
printf(“Ohkay,先生%d,您在做什么?”,&ageofUser)
而不是整数,请删除
&
。此外,您使用的
scanf
也是错误的。阅读
scanf
的文档,找出返回值。但是无论如何,如果你在这里没有效果,因为
开头的行的末尾,编译器应该告诉您错误在哪里。然后您可以识别所涉及的操作数。例如,
“您的年龄是多少?”
用作指针)详细信息:因此,如果您的用户的年龄是21岁,您可以称呼他为“21岁先生”?这里的问题的根源是:您不能通过尝试语法或试错来进行编程。您必须真正理解您键入的每一行都是做什么的,以及C实际上是如何工作的。否则,您将不断得到非常奇怪的错误和bug,您不知道它们来自何方。
char *str = "hello";
char *str_comp = "ello";

if (strcmp(str, str_comp) == 0) {
    // both are equal
} else {
    // otherwise, not
}
scanf("%s", professionUser); // removed &