C++ 为什么不';我的连字符是否使用std::cout正确显示?

C++ 为什么不';我的连字符是否使用std::cout正确显示?,c++,cout,C++,Cout,我正在尝试使用std::cout打印以下字符串: “加密机–pid1 0x34f–pid2” “-”字符显示为u,上面有一个扬抑符(我不知道如何键入) 如何按预期打印连字符?确保终端对字符编码的理解与源代码的理解一致。当然,如何做到这一点取决于您的操作系统、正在使用的终端仿真器(假设它是一个仿真器)等等,而这两者都不是您所说的 另外,在您的示例中,这不是连字符,它太长了。这可能是一个“em破折号”。不是连字符 这是一个“n-dash”,它将根据编码设置在不同的控制台上呈现不同的效果 在西方布局中

我正在尝试使用std::cout打印以下字符串:

“加密机–pid1 0x34f–pid2”

“-”字符显示为u,上面有一个扬抑符(我不知道如何键入)


如何按预期打印连字符?

确保终端对字符编码的理解与源代码的理解一致。当然,如何做到这一点取决于您的操作系统、正在使用的终端仿真器(假设它是一个仿真器)等等,而这两者都不是您所说的

另外,在您的示例中,这不是连字符,它太长了。这可能是一个“em破折号”。

不是连字符

这是一个“n-dash”,它将根据编码设置在不同的控制台上呈现不同的效果


在西方布局中,连字符键通常位于键盘的数字行。

我明白了。我怎样才能知道我的终端对字符编码的想法是什么?我应该在哪里设置源代码的字符编码…?你说得对-那不是连字符。我想要一个连字符,所以我修改了源代码。谢谢,那不是连字符。您可以使用一些十六进制编辑器来检查它的实际值。我的编辑器显示它是0xa843