格式指定类型为'char *',但参数的类型为'char

时间:2019-03-28 22:15:01

标签: c

我正在编写一些代码,而我对c还是很陌生。我需要帮助!

我尝试过改变一些事情,但是因为我是新来的,它并没有真正帮助

int main()
{

  char name[10];
  int age;

  printf("what is your name");
  scanf("%s", &name);

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

  printf("%s",name);
  printf("%d",age)

}
format specifies type 'char *' but the argument has type 'char (*)[10]' [-Wformat]

2 个答案:

答案 0 :(得分:4)

替换

scanf("%s", &name);

作者

 scanf("%s", name);

或还设置最大尺寸:

 scanf("%9s", name);

但是如果输入字符串大于9个字符(即使在 name 中仅设置了9个字符,则发出警告)(更多为空字符),接下来的字符不会被丢弃,因此scanf("%d",&age);不能像预期的

我建议您始终检查 scanf

返回的值

答案 1 :(得分:-1)

您应在scanf("%s", &name);行中删除&。格式%s的参数是一个指向字符串开头name的指针。您正在做的是将指针传递给字符串。