如何为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)
答案 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.