用输入调用变量,这在 C++ 中有效吗?

Call up variables with inputs, does that works in C++?

我是一个爱好程序员。我正在寻求帮助,因为我想知道您是否可以调用一个等效于输入的变量,而无需看起来像这样的代码片段:

std::string exampleVariable = "Hello";

std::string exampleInput;
std::cin >> exampleInput;

if(exampleInput == "exampleVariable")
     std::cout << exampleVariable;

到目前为止,我想让我的代码具有该结构:

Input(Example) => Output(variable named Example)

我可以得到一些帮助吗?我会很感激。谢谢

你可以使用宏,这允许你检查变量名,你仍然需要将变量名存储在一个单独的变量中,以便与 Example 变量名进行比较。

Live demo

#include <iostream>

#define printVar(var, name) (std::cout << (#var == name ? var : "No match"))

int main()
{   std::string varName;
    std::string Example = "Hello";
    std::cin >> varName;
    printVar(Example, varName);      
}

输入:

Example

输出:

Hello

在 C++ 中,您将为此使用 std::map<std::string, std::string>。这是一个键值映射,其中都是字符串。

例如

std::map<std::string, std::string> variables;
variables["Hi"] = "Hello";
std::string exampleInput;
std::cin >> exampleInput;
std::cout << variable[exampleInput];

使用地图中不存在的键是安全的,您将获得一个默认值(例如空字符串)。

你也可以有除字符串以外的其他键类型,只要它们可以排序,以及其他值类型。 int 对两者都非常有效。