输入型铸造?

时间:2017-08-11 07:27:43

标签: c++ casting char int

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

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

然后使用in char来标识A并传递它所拥有的值。

对不起,如果我不是那么清楚。

3 个答案:

答案 0 :(得分:0)

正如您对问题的评论所述,您想要使用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;

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

答案 1 :(得分:0)

简单示例

#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

答案 2 :(得分:0)

你的输入是一个字符,所以你可以将它与其他一些字符进行比较

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;
}