gpt4 book ai didi

C - 在方法中使用 typedef

转载 作者:行者123 更新时间:2023-11-30 16:32:18 28 4
gpt4 key购买 nike

我正在尝试制作一个基本游戏,它使用玩家/敌人信息的结构

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();
}

实体“Player”是在主方法或其他函数之外定义的。问题是无法输入玩家实体的名称。它完全跳过 fgets 部分。我做错了什么?

最佳答案

strlen(Player.Name)

由于未初始化的字符串而返回 0。这意味着您想在 fgets() 中从 stdin 获取 0 个字符。您必须指定缓冲区大小(输入名称字符串的最大所需值)。

关于C - 在方法中使用 typedef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50217340/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com