<分区>
我一直没能找到 cout
的方法一个 '-' 字符,我是否将它放在 cout 语句中,如下所示:cout << "—";
或使用 char(151)
,程序打印出一个模糊的未定义字符。你们看到我的代码有什么问题吗?是cout
甚至可能创建 EM DASH?
编辑:我也试过 wcout << L"—";
和 std::wcout << wchar_t(0x2014);
.这些都在我的终端上什么都不打印。
<分区>
我一直没能找到 cout
的方法一个 '-' 字符,我是否将它放在 cout 语句中,如下所示:cout << "—";
或使用 char(151)
,程序打印出一个模糊的未定义字符。你们看到我的代码有什么问题吗?是cout
甚至可能创建 EM DASH?
编辑:我也试过 wcout << L"—";
和 std::wcout << wchar_t(0x2014);
.这些都在我的终端上什么都不打印。
最佳答案
首先,EM DASH 是一个 unicode 字符(只要确保您知道这一点)。
打印 unicode 字符取决于您打印到的内容。
如果您正在打印到 Unix 终端(或模拟器),终端模拟器正在使用支持此字符的编码,并且该编码与编译器的执行编码相匹配,那么您可以在源代码 cout << "—";
中执行上面的操作
如果您收到模糊的未定义字符,可能是您的终端不支持该字符。
如果你在 windows 中(那里比较难),你可以做这样的事情(这是不可移植的):
#include <iostream>
#include <io.h>
#include <fcntl.h>
int main() {
_setmode(_fileno(stdout), _O_U16TEXT);
std::wcout << L"—";
}
关于c++ - 是否可以在 Linux 和 Windows 上计算 EM DASH?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33029906/