给char / unsigned char赋一个值

时间:2019-10-21 19:57:00

标签: c++

如何为char / unsigned char赋值?我试图用这段代码来实现

#include <iostream>

int main() {
    char a;
    unsigned char b;
    std::cout << "Enter a and b: " << std::endl;
    std::cin >> a >> b;
    std::cout << a << ":" << b << std::endl;
}

但是它只打印变量 a 的前两个字符(我知道char可以是一个字节值,但是我不知道为什么它不希望接受我的数字并将其拆分如果大于9)

1 个答案:

答案 0 :(得分:5)

  

我知道char可以是一个字节的值,但是我不知道为什么它不希望接受我的数字并在大于9时将其分割

这里似乎有点误会。

char可以保留一个字节,但是在您使用时

std::cin >> a;

a中仅读取一个字符,而不是表示字节的整数值。

如果输入为95,则仅将数字'9'而不是整数值95读入a


a是类型int的变量,

std::cin >> a;

95读入a。当然,那么就不需要

std::cin >> a >> b;

这将期望a的输入和b的输入被一个或多个空格字符分隔。

您可以通过简单的分配或显式强制转换将int转换为char

int i;
char a;
std::cin >> i;  // Provide 95 as input.
a = i;          // a is now the character that corresponds to 95 in the
                // encoding used in your platform.