以下代码:`
unsigned char agevalue;
cout<<"what is your age?"<< endl;
cin >> agevalue;
cout<<"your age is:"<< agevalue <<endl;`
切掉大于 9 的值,只留下第一个数字。这可能是什么原因?
以下代码:`
unsigned char agevalue;
cout<<"what is your age?"<< endl;
cin >> agevalue;
cout<<"your age is:"<< agevalue <<endl;`
切掉大于 9 的值,只留下第一个数字。这可能是什么原因?
尽管unsigned char
在某些情况下被视为整数,但它主要用于表示单个字符。因此,您的代码只读取第一个数字。如果您想读取一个数字,您需要使用其中一种非char
整数类型,例如int
(如果您需要整数,这应该是您的默认选择)。
这是因为您正在读取一个字符而不是整数。
如果您希望获取数字,则需要使用正确的数据类型:
unsigned short ageValue = 0;
cout << "What is your age?" << endl;
cin >> ageValue;
cout << "Your age is " << agevalue << endl;
如果您真的想将年龄值存储在字节大小的整数(而不是半字)中:
unsigned char ageValue = 0;
unsigned short inputValue = 0;
cout << "What is your age?" << endl;
cin >> inputValue;
ageValue = static_cast<unsigned char>(inputValue);
cout << "Your age is " << static_cast<unsigned short>(agevalue) << endl;