相关疑难解决方法(0)

为什么scanf扫描一个空值

在下面的代码中:

#include <stdio.h>

int main(){

  char *name;
  int age;  
  char *gen;

  printf("Your name:");
  scanf("%s",name);

  printf("Your age:");
  scanf("%d",&age);

  printf("Your gender:");
  scanf("%s",gen);

  printf("*****************\n");

  printf("%s is a %d years old %s \n",name,age,gen);

  return 0;  

}
Run Code Online (Sandbox Code Playgroud)

当我像这样运行它:

Your name:tom
Your age:20
Your gender:male
*****************
tom is a 20 years old (null)
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,gen是一个空值,为什么scanf无法读入gen但前两个读数成功?

c scanf

1
推荐指数
1
解决办法
694
查看次数

标签 统计

c ×1

scanf ×1