c++ - 如何在使用 VS2010 的 C++ 编程中的 std::string 中插入复选标记 "✓"

标签 c++ visual-studio-2010 visual-c++

在我用 C++ 开发的一个应用程序中,我必须显示“✓”标记。为此,我需要先在 std::string 或 char 中插入相同的内容。但是当我这样做时,我得到一个“?”标记为输出。我正在使用 VS2010 进行编码。请建议如何解决相同的问题。提前致谢。

最佳答案

似乎有一些基本的误解。

复选标记字符是 Unicode 0x2713。您不能将其作为单个字符存储在 std::string 中。 char 的最大值为 0xff (255)。它不适合。

如果您正在使用 C++ 为 Windows 开发 GUI,那么我猜想是 MFC。但是,如果您使用的是 std::string,那么情况可能并非如此。一些选择:

  1. 对于 MFC,您可以在 UNICODE 模式下重建您的应用程序。然后字符很短(16 位),您的复选标记将适合。
  2. 您可以使用 std::wstring 而不是字符串。这意味着对现有代码的更改。
  3. 您可以使用 UTF-8,它用多字节序列替换字符。不推荐在 Windows 中使用,即使您认为自己知道自己在做什么。非常不友好。

无论如何,如果您使用的是 GUI 和对话框,则必须确保它们是 Unicode 对话框,否则将无法正常工作。

有了更多的细节,我们可以给出更具体的建议。

关于c++ - 如何在使用 VS2010 的 C++ 编程中的 std::string 中插入复选标记 "✓",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22533115/

相关文章:

c++ - strrchr 导致 'Cannot convert from const char * to char *'

c++ - 如何在没有任何内存泄漏的情况下创建和编辑全局 PCHAR

c++ - 静态链接到使用不同版本的 C 运行时库构建的库,好还是不好?

c++ - 从函数返回后,我类的 const char* 有垃圾字符

java - 尽管在主要 Activity 中工作,但 native 函数在自定义 View 中抛出 UnsatisfiedLinkError

c++ - OpenCV 程序无法在 Visual Studio 2010 上编译

c++ - 写入 bool 条件 "in full"是否会影响性能?

c - 如何使用 Visual Studio 调试 SQLite 源代码

c++ - 我的标准偏差程序的输出问题

visual-studio-2010 - 默认情况下在 Windows Vista 上下文中运行的应用程序