c++ - 显示字符名称 C++ 的标准解决方案?

标签 c++ char

对于非字母输入字符的用户友好表示是否有标准函数?
假设 char(27) 将是“ESC”或“Escape”或类似的东西。
我问这个是因为这对我来说是一种在命令行中显示控件帮助的简单方法。

编辑:

正如@ypnos 所指出的:问题是如何避免定义我自己的键名。
我想知道 boost 或 std 中是否有我错过的功能或一些基本库?

目前,Ascii-only 可以为我工作,但我正在寻找一个“标准”解决方案,因为我不想在处理 Unicode 输入后重新实现——比如带有重音符号的字符不在 Ascii 中——稍后。

我的程序代码将被发送到 Linux 和 Windows,我也不希望名称在某些地方出现错误。

最佳答案

最 C++-y 的方式可能是通过一个库,例如 Ogonek .遗憾的是,目前还没有实现相关功能。

R。 Martinho Fernandes(维护者)tells me它应该如下所示:

namespace ogonek {
    namespace ucd {
        …

        basic_text<utf8> get_name(codepoint u) {
            return basic_text<utf8> {
                find_property_group(name_data, name_data_size, u).name };
        }

        …
    }
}

然后您可以使用简单地显示 Unicode 代码点(例如 27)的名称

std::cout << ogonek::ucd::get_name(27);

关于c++ - 显示字符名称 C++ 的标准解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13253167/

相关文章:

java - 添加 char 和 int

c - 当使用 scanf 获取整数和 char 值时,程序会跳过 scanf

c++ - 为什么 Windows 的 gflags 不会因这段代码而崩溃?

c++ - 如何使用live555提取H264帧

C++11 gcc : explicit qualification in declaration? 标准引用?

C++:使用函数重载和 char 到 int 之间的隐式转换,反之亦然

c - 在给定子字符串位置的情况下,删除 C 中的子字符串

c++ - "Largest possible object"关于 size_t 的解释

c++ - QML,Qt 4.8 : How to enable openGl and Chromeless at the same time?

c - 将十六进制字节转换为字符字符串