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

标签 c++ formatting ostream interpretation

我想控制我的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 打印为整数),而无需查找自定义函数的定义。

关于c++ - 将字符打印为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10950390/

相关文章:

C++使用模板函数,在主函数中定义一个具有ostream类变量的构造函数

c++ - 需要使上下文可用于 C++ ostream 插入运算符

c++ - 将 makefile 与 boost 线程一起使用时遇到问题

c++ - C++ 编译器之间的巨大性能差异

c - printf 的浮点值 10.1 的意外输出

jquery - 在 HTML 页面中显示代码片段

c++ - 为序列重载 ostream << 运算符

c++ -/usr/bin/ld : cannot find -lgmock on ubuntu while running gmock program

c++ - 静态常量字符指针及其以这种方式使用的原因

c# - 当现有格式不一致时,如何使电话号码变得漂亮/用户友好?