C++ - 从控制台获取字节
C++ - Getting Byte from Console
我是 C++ 新手,有 C#/Java 背景,我觉得自己有点被宠坏了。
我在这里想要实现的是使用 cin
.
将用户输入的数据作为字节 (unsigned char
)
#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;
}
返回的值是我输入的字符的ASCII十进制值。我怎样才能得到实际值,把这个值当作一个数字?
感谢您的帮助。谢谢
因为您在这里使用的是 char 数据类型。此处输入的 1 值被视为字符,存储 1 (49) 的 ASCII 值并打印 49 * 2 = 98。
而不是 char 使用 int 作为数据类型。
无论您使用什么类型别名,当使用 cin >>
读取时,一个字符始终是一个字符,并且将被读取为一个字符。
您得到的值是字符 '1'
的 ASCII 代码。
如果您想将其作为数字读取,请使用适当的数字数据类型,例如 int
。
我是 C++ 新手,有 C#/Java 背景,我觉得自己有点被宠坏了。
我在这里想要实现的是使用 cin
.
unsigned char
)
#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;
}
返回的值是我输入的字符的ASCII十进制值。我怎样才能得到实际值,把这个值当作一个数字?
感谢您的帮助。谢谢
因为您在这里使用的是 char 数据类型。此处输入的 1 值被视为字符,存储 1 (49) 的 ASCII 值并打印 49 * 2 = 98。 而不是 char 使用 int 作为数据类型。
无论您使用什么类型别名,当使用 cin >>
读取时,一个字符始终是一个字符,并且将被读取为一个字符。
您得到的值是字符 '1'
的 ASCII 代码。
如果您想将其作为数字读取,请使用适当的数字数据类型,例如 int
。