用输入调用变量,这在 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
变量名进行比较。
#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
对两者都非常有效。
我是一个爱好程序员。我正在寻求帮助,因为我想知道您是否可以调用一个等效于输入的变量,而无需看起来像这样的代码片段:
std::string exampleVariable = "Hello";
std::string exampleInput;
std::cin >> exampleInput;
if(exampleInput == "exampleVariable")
std::cout << exampleVariable;
到目前为止,我想让我的代码具有该结构:
Input(Example)
=>
Output(variable named Example)
我可以得到一些帮助吗?我会很感激。谢谢
你可以使用宏,这允许你检查变量名,你仍然需要将变量名存储在一个单独的变量中,以便与 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
在 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
对两者都非常有效。