我正在从学校进行一次简单的分配,其中涉及将一个两位整数(<100)分配给char变量。我正在使用Xcode 9.2。我应该能够做到这一点,并且Xcode不会抱怨。但是,当我尝试将变量cout
插入控制台时,它会返回_
代替变量
这是在普通.cpp
项目中的command line tool
文件上。
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的特色吗?
谢谢。
答案 0 :(得分:4)
向流中写入char
时,假定您希望写入实际字符而不是其整数值。要输出整数,请改用它:
cout << "I will work hard to get a grade of "
<< static_cast<int>(desired_score)
<< " in this course!\n";
答案 1 :(得分:1)
发生这种情况的原因是因为_(下划线)的ASCII代码为95。一个简单的解决方法是使用字符串,整数或short代替char。
编辑: 它适用于个位数,因为您使用的是字符文字,而不是因为字符也是c ++中的字节。那是我的错误。