【发布时间】:2012-06-12 14:29:57
【问题描述】:
我想控制我的ostream 输出的chars 和unsigned char 通过<< 将它们写为字符 还是整数。我在标准库中找不到这样的选项。现在我已经恢复到在一组替代打印函数上使用多个重载
ostream& show(ostream& os, char s) { return os << static_cast<int>(s); }
ostream& show(ostream& os, unsigned char s) { return os << static_cast<int>(s); }
有没有更好的办法?
【问题讨论】:
-
您希望始终将字符打印为整数还是根据条件打印?
-
我希望它依赖于类似于
ios状态标志的条件(状态)。 -
我不明白区分有符号字符和无符号字符的必要性。如果要将其输出为数字,请先将其转换为 int。否则,只需将其打印到 os 即可。
-
也许可以为此编写自己的io操纵器...
-
cout << static_cast<uint32_t>(some_char_val);?
标签: c++ formatting ostream interpretation