输入类型铸造?

Input type casting?

本文关键字:类型 输入      更新时间:2023-10-16

我想获取一个输入字符,然后从中获取分配给字符的预定义数字。 例

int A=100;
char in;
cin>>in; //input A;

然后使用该in字符来标识A并传递它所包含的值。

对不起,如果我不太清楚。

正如在您的问题的评论中提到的,您想使用map

#include <map>
...
std::map<char, int> char_map = {
{'A', 100}   
};
char in;
std::cin >> in; //input A;
std::cout << char_map[in] << std::endl;

当然,您可能需要在密钥上添加某种形式的验证。

简单的例子

#include <iostream>
#include <unordered_map>
int main(void)
{
char c;
std::unordered_map<char, int> uMap;
for (int i = 'A'; i <= 'Z'; i++)
{
uMap[i] = i - 'A' + 1;
}
c = fgetc(stdin);
std::cout << "nCharacter '" << c << "' has value " << uMap[c];
return 0;
}

输入

1. A
2. C
3. Z

输出

1. Character 'A' has value 100
2. Character 'C' has value 102
3. Character 'Z' has value 125

您的输入是一个字符,因此您也可以将其与其他一些字符进行比较

char input;
std::cin >> input; //input A;
std::cout << "input: " << input << std::endl;
if (input == 'A')
{
std::cout << "input was A: " << std::endl;
}
else
{
std::cout << "input was not: " << std::endl;
}