为char变量分配一个2位数的整数

时间:2019-08-28 23:10:04

标签: c++ xcode char

我正在从学校进行一次简单的分配,其中涉及将一个两位整数(<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的特色吗?

谢谢。

2 个答案:

答案 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 ++中的字节。那是我的错误。