c++ - 将字符打印为整数

我想控制我的ostream char的输出和 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); }

有没有更好的办法?

最佳答案

不,没有更好的方法。更好的方法是采用自定义流操纵器的形式,例如 std::hex .然后,您可以关闭和打开整数打印,而无需为每个数字指定它。但是自定义操纵器对流本身进行操作,并且没有任何 format flags做你想做的事。我想你可以编写自己的流,但这比你现在做的工作要多。

老实说,最好的办法是看看你的文本编辑器是否有制作 static_cast<int> 的功能。更容易打字。我假设你会输入很多,否则你不会问。这样,阅读您的代码的人就可以确切地知道您的意思(即,将 char 打印为整数),而无需查找自定义函数的定义。

https://stackoverflow.com/questions/10950390/

相关文章:

python - 意外 'reflowed' ,如何撤消长换行符?

r - DataTables 也应用列格式来过滤

c# - 从具有多个零值的枚举中获取项目名称

intellij-idea - IntelliJ : wrap javadoc text but n

php - 分离 php 和 html... 为什么?

LaTeX - 在序列中每个新行的开头添加不同数量的水平间距

vba - 复制行内容和格式(到另一张纸)

c++ - 如何打印 '\n' 而不是换行符?

python - 狮身人面像浮点格式

visual-studio - ASP.NET MVC 查看代码格式 - 大括号 <% } %>