【发布时间】:2014-03-29 21:30:47
【问题描述】:
我想要类似的东西
string magic(char c);
所以当我这样做时
std::cout << magic(c);
我明白了:
- 用于打印 ASCII 字符的字符本身;
- 其他 ASCII 字符的 2/3 个字母的 ASCII 代码(例如
"NUL"、"BEL"、"LF"等) - 当 c 为非 ASCII(第 8 位开启)时任何合理的值。
我应该使用什么? (不一定是函数。)
【问题讨论】:
-
如果您希望输出为可打印的 ASCII,您至少需要将一个可打印的 ASCII 字符修改/转义为两个或三个可打印的 ASCII 字符。除非你想要模棱两可。
-
你想让它在任何地方都能工作吗(包括 ebcdic 计算机)?
-
@einpoklum:为什么不自己写呢?只要它只是 ASCII(不是 Unicode 的东西、EBCDIC 或者更奇怪的东西),控制字符的数量就很小。只是一些 if-else 和一组特殊名称,例如“BEL”...
-
@einpoklum:我认为没有任何 lib 函数。
-
你能用一个简单的查找表吗?
const char *magic[] = {"NUL", "SOH" ... "a", "b" ... "0xFE", "0xFF" };.
标签: c++ c escaping ascii non-printing-characters