无法输出对象的红色/绿色/蓝色值


vector<Text> Game_Text;
Game_Text.push_back(Text("0",Game_Font[0],50));
cout<<Game_Text[0].getFillColor().r<<endl;

在代码中使用 C++11::块

运行时没有输出任何东西,它不应该输出 255 吗?如果Game_Text[0].getFillColor().r被替换为,比如说,"test",它会正常输出test。没有错误,完整的代码正在工作。

使用此方法是否可以仅输出对象的单个 r/g/b 值?

Color成员r的类型为Uint8,这是unsigned char的别名。

char(以及signed charunsigned char,以及基于这些类型的所有别名(由输出运算符<<作为字符处理。

因此

cout<<Game_Text[0].getFillColor().r<<endl;

将尝试将r打印为字符。如果其值与可打印字符不对应,则似乎不会打印任何内容。

要打印整数值,您需要将其转换为不基于char的整数类型:

cout << static_cast<unsigned>(Game_Text[0].getFillColor().r) << 'n';

最新更新