将 2 位整数分配给 char 变量

Assigning a 2 digit integer to a char variable

本文关键字:char 变量 分配 整数      更新时间:2023-10-16

我在学校做一个简单的作业,其中包括将一个两位整数(<100(分配给char变量。我正在使用Xcode 9.2。我应该能够做到这一点,Xcode并没有抱怨。然而,当我尝试将变量cout控制台时,它会返回_代替变量

这是在普通command line tool项目中的.cpp文件上。

char desired_score;
desired_score = 95;
cout << "I will work hard to get a grade of " << desired_score << " in this course!n";

此代码产生:

I will work hard to get a grade of _ in this course!

如果我将值分配给一位数,它会输出得很好。因此,我能够编写一种解决方法,只需将变量值从'9'重新分配给'5'并使用两个不同的cout语句。

有谁知道为什么会这样?这是家庭作业的一部分,我的教科书说这在C++应该是可能的。这是Xcode的特点吗?

提前谢谢。

当您将char写入流时,假定您希望写入实际字符而不是其整数值。 要输出整数,请改为强制转换它:

cout << "I will work hard to get a grade of "
<< static_cast<int>(desired_score)
<< " in this course!n";

发生这种情况的原因是 _(下划线(的 ascii 代码为 95。一个简单的解决方法是使用字符串、整数或短字符而不是字符。

编辑: 它适用于个位数,因为您使用了字符文本,而不是因为字符在 c++ 中也是字节。那是我的错误。