这是一个简单的游戏,我正在尝试学习如何在现有项目中应用C++(这就是我学习的最佳方式),我有使用C#和其他高级语言编程的经验,所以这对我来说还是很新的.所以我有这个比赛列表:
const char* Races[] = {
"Demon",
"Human",
"Elf",
"Orc",
"Aliens"
};
Run Code Online (Sandbox Code Playgroud)
有一次,我收到了用户的注册,并选择了比赛.我将用户的所有信息保存到结构中,我也希望将比赛的全名保存到此结构中.
struct User_t {
unsigned int RaceID;
char Race[16];
};
Run Code Online (Sandbox Code Playgroud)
以下代码是我将结构中的值放入的代码:
User_t User;
User.RaceID = 3;
strcpy(User.Race, Races[User.RaceID]);
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.这是游戏的一部分,异常处理非常糟糕(它基本上会在没有任何错误可见的情况下崩溃游戏).我想弄清楚我做错了什么.有什么建议,也许是对其他事情的建议吗?
我想弄清楚我做错了什么.有什么建议,也许是对其他事情的建议吗?
您正在尝试使用C++,就好像它是C语言(这在语法上是可能的),并且您不能很好地了解C和C++.
帮自己一个忙,用真正的 C++ 做吧:
std::string Races[] = {
"Demon",
"Human",
"Elf",
"Orc",
"Aliens"
};
struct User {
unsigned int RaceID;
std::string Race;
explicit User(unsigned int rid)
: RaceID(rid)
, Race(Races[rid])
{}
};
User user(3);
std::cout << user.Race << '\n';
Run Code Online (Sandbox Code Playgroud)