gpt4 book ai didi

c++ - .h 文件中的字符串预定义并使用它来过滤用户输入

转载 作者:行者123 更新时间:2023-11-28 01:58:20 25 4
gpt4 key购买 nike

考虑以下情况:

#define YES "y"||"Y"||"yes"||"Yes"||"YES"
#define NO "n"||"N"||"no"||"No"||"NO"

在用户输入时使用宏。

FRW::writeLine(PLAY_AGAIN);
latestResponse = FRW::getUserInput();
if (latestResponse == YES)
{
retry = false;
}
else if (latestResponse == NO)
{
retry = true;
}

我知道这是错误的,我实际上应该使用...

#define YES latestResponse == "y"|| latestResponse == "Y"|| latestResponse == "yes"|| latestResponse == "Yes"|| latestResponse == "YES"

...并检查为

 if (latestResponse == YES)
{
retry = false;
}
else if (latestResponse == NO)
{
retry = true;
}

拜托,有人可以推荐任何其他实现字符串宏的方法吗?还是我应该保持这种状态?

最佳答案

以这种方式使用宏没有任何好处。

您更应该问,这里适当的抽象是什么?在这种情况下,它可能是

bool is_yes(const std::string &response) {
return response == "y" || response == "yes" || ...;
}

bool is_no(const std::string &response) {
// ...
}

然后在您的代码中使用它。

关于c++ - .h 文件中的字符串预定义并使用它来过滤用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40427827/

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