我想从键盘中选择要显示的数组(我知道我的代码不起作用,我只想显示我的问题)
int main(){
char *a = new char[5];
char *b = new char[5];
char name;
cin >> a;
cin >> b;
cin >> name;
cout << name;
}
答案 0 :(得分:1)
一旦程序运行,您在代码中使用的变量名就没有意义。如果您要这样做,则不能用name
或a
动态替换b
。
使示例更简单(c风格的数组绝对不适合初学者,请看std::vector
),您可以这样做:
#include <iostream>
int main() {
int a = 42;
int b = 102;
std::cout << "select a or b: ";
char select;
std::cin >> select;
if (select == 'a') std::cout << a;
else if (select == 'b') std::cout << b;
else std::cout << "wrong input \n";
}
答案 1 :(得分:0)
大多数情况下,如果要具有多个相同类型的对象(例如,超过2个或3个),则应考虑使用数组或向量。
所以不是
char *a = ...;
char *b = ...;
char *c = ...;
使用
char *values[] = { ... };
现在,您可以使用索引(即整数值)来访问值。对于字符a-z,可以通过减去值'a'
('a'-'a'
为0,'b'-'a'
为1,等等)来轻松实现。
const char *values[] = { "this is a", "this is b" };
char name;
std::cin >> name;
int index = name - 'a';
// TODO: Make sure the index is in range!
const char *value = values[index];
std::cout << value;