我试图制作一个使用玩家/敌人信息结构的基本游戏
typedef struct Entities {
char Name[100];
int Health;
int Strength;
int Defence;
} Entity;
我有一个用户创建角色的方法
void CreateCharacter() {
system("cls");
printf("Please enter your name: ");
fgets(Player.Name, strlen(Player.Name), stdin);
Player.Name[strlen(Player.Name) - 1] = '\0';
printf("%s's Stats\n",Player.Name);
Player.Health = 10;
Player.Strength = 10;
Player.Defence = 10;
printf("Health - %d\n", Player.Health);
printf("Strength - %d\n", Player.Strength);
printf("Defence - %d\n", Player.Defence);
printf("Is this okay?");
getch();
}
实体"播放器"在主方法或其他函数之外定义。问题是无法输入玩家实体的名称。它完全跳过了fgets部分。我做错了什么?
答案 0 :(得分:0)
strlen(Player.Name)
返回0,因为未初始化的字符串。这意味着你想从fgets()中的stdin获得0个字符。您必须指定缓冲区大小(输入名称字符串的最大需求值)。