次のコード: `
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 short ageValue = 0;
cout << "What is your age?" << endl;
cin >> ageValue;
cout << "Your age is " << agevalue << endl;
age 値を (ハーフワードではなく) バイトサイズの整数で格納したい場合:
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;