C ++ - 从控制台获取字节

时间:2015-10-15 07:12:58

标签: c++ char byte cin

我是C ++的新手,来自C#/ Java背景,我觉得我有点被宠坏了。

我在这里想要实现的是使用unsigned char将用户输入的数据作为字节(cin)。

#include <iostream>

using namespace std;

typedef unsigned char byte;

int main()
{
    byte num = 0;
    char exitKey = '0';

    cout << "Type in a number between 0 and 255.\n";
    cin >> num;

    cout << "\nYour number multiplied by 2 is:\n" << (num * 2);
    cin >> exitKey;

    return 0;
}

Example

返回的值是我输入的字符的ASCII十进制值。如何获取实际值,将值视为数字?

帮助表示赞赏。感谢。

2 个答案:

答案 0 :(得分:3)

使用什么类型别名并不重要,使用cin >>阅读时,字符始终是一个字符,并且将被读作字符。

您获得的值是'1'字符的ASCII代码。

如果要将其作为数字读取,请使用正确的数值数据类型,例如int

答案 1 :(得分:2)

因为你在这里使用char数据类型。此处输入的1值被视为字符,并且存储了1(49)的ASCII值,并且打印了49 * 2 = 98。 而不是char使用int作为数据类型。