如何将输入的字符串设置为变量?C++
代码这不是全部代码,只是我想了解的部分:如何将输入的字符串设置为变量?C++,c++,C++,代码这不是全部代码,只是我想了解的部分: int x = 12; int y = 14; int z = 6; char move_from; char move_to; cout << " Boxes: x y z" << endl; cout << "Values:" << " " << x << " " << y << " " << z << end
int x = 12; int y = 14; int z = 6;
char move_from; char move_to;
cout << " Boxes: x y z" << endl;
cout << "Values:" << " " << x << " " << y << " " << z << endl << endl;
cout << "Enter the values you want to move around: ";
cin >> move_from >> move_to;
move_from = move_from - move_from; //Calculations to move the values around
move_to = move_to + move_from;
cout << " Boxes: x y z" << endl;
cout << "Values:" << " " << x << " " << y << " " << z << endl << endl; // Updated values are shown
示例输出它的作用…:
Boxes: x y z
Values: 12 14 6
Enter the values you want to move around: xy
Boxes: x y z
Values: 12 14 6
我遇到的问题是,用户输入被保存为字符串,因此计算并没有真正按照我想要的方式工作,而是我必须编写6个不同的if语句来移动值
我想知道是否有可能只接受用户输入,然后像上面那样进行计算,并减少实际代码中if语句的混乱
谢谢大家! 您可以编写lambda来将用户输入的字符转换为对相应变量的引用,如
auto char_to_var = [&](char var) -> int&
{
switch (var)
{
case 'x': return x;
case 'y': return y;
default: return z;
}
};
auto &move_from_var = char_to_var(move_from);
auto &move_to_var = char_to_var(move_to);
move_to_var += move_from_var;
move_from_var = 0;
并使用转换后的引用执行移动,例如
auto char_to_var = [&](char var) -> int&
{
switch (var)
{
case 'x': return x;
case 'y': return y;
default: return z;
}
};
auto &move_from_var = char_to_var(move_from);
auto &move_to_var = char_to_var(move_to);
move_to_var += move_from_var;
move_from_var = 0;
您的描述不够清晰,我无法理解您的意图。变量是编译时的概念,在程序执行期间没有特殊意义。您必须编写一些逻辑来处理不同的输入。是否从-move_-from将值设置为0?我用示例输出更新了我的问题,其中包括我希望代码执行的操作以及它实际执行的操作。这基本上就是我运行代码时得到的。你不能。您可以将变量和值存储在映射中,然后通过索引进行访问。