用输入调用变量,在C++中能用吗?

问题描述 投票:0回答:1

我是一个爱好编程的人。求助于大家,因为我想知道能不能调用一个相当于输入的变量,而不至于让代码片段变成那样。

std::string exampleVariable = "Hello";

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

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

我想让我的代码有这样的结构。

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

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

c++ variables cin cout
1个回答
2
投票

在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 这两点都能很好的实现。


1
投票

你可以使用一个宏,这可以让你检查变量名,你仍然需要将变量名存储在一个单独的变量中,以便与该变量名进行比较。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
© www.soinside.com 2019 - 2024. All rights reserved.