我是一个爱好编程的人。求助于大家,因为我想知道能不能调用一个相当于输入的变量,而不至于让代码片段变成那样。
std::string exampleVariable = "Hello";
std::string exampleInput;
std::cin >> exampleInput;
if(exampleInput == "exampleVariable")
std::cout << exampleVariable;
我想让我的代码有这样的结构。
Input(Example)
=>
Output(variable named Example)
我可以在这里得到一些帮助吗?我会很感激的。谢谢。
在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
这两点都能很好的实现。
你可以使用一个宏,这可以让你检查变量名,你仍然需要将变量名存储在一个单独的变量中,以便与该变量名进行比较。Example
变量。
#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