首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >格式指定类型“char*”,但参数具有“char”类型。

格式指定类型“char*”,但参数具有“char”类型。
EN

Stack Overflow用户
提问于 2019-03-28 22:15:01
回答 2查看 1.4K关注 0票数 0

我正在编写一些代码,我对c非常陌生。我需要一些帮助!

我试过改变周围的一些东西,但是因为我是新手,所以没有什么帮助。

代码语言:javascript
运行
复制
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)

}

格式指定类型'char *‘,但参数的类型为'char (*)10’-Wformat

EN

回答 2

Stack Overflow用户

发布于 2019-03-28 22:19:45

替换

scanf("%s",&name);

通过

代码语言:javascript
运行
复制
 scanf("%s", name);

也可以设置最大大小:

代码语言:javascript
运行
复制
 scanf("%9s", name);

但是,警告,如果输入字符串大于9个字符,甚至只有9个字符的名称(更多为空字符),则不会丢弃下一个字符,因此scanf("%d",&age);将无法按预期工作。

我鼓励您始终检查you返回的值。

票数 4
EN

Stack Overflow用户

发布于 2019-03-28 22:20:23

在行scanf("%s", &name);中,您应该删除&。format %s的参数是指向字符串开头的指针,即name。您要做的是将指针传递给指针到字符串。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55407667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档