【发布时间】:2018-01-13 23:11:24
【问题描述】:
如何在 C 中打印一个破折号?
其中之一:—
每当我这样做时:printf("—") 我只会在终端中得到一个 ù。
谢谢。
编辑:下面的代码应该打印出一个 Xs 和 Os 外观的网格,水平线用短划线表示。
int main ()
{
char grid[3][3] = {{'a', 'a', 'a'}, {'a', 'a', 'a'}, {'a', 'a', 'a'}};
int i, j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
if (j != 0)
{
printf("|");
}
printf(" %c ", grid[i][j]);
}
if (i != 2)
{
printf("\n——————————————\n");
}
}
return 0;
}
输出:(“ù”应该是“—”)
a | a | a
ùùùùùùùùùùùù
a | a | a
ùùùùùùùùùùùù
a | a | a
编辑:我在 Windows 10 x64 上使用 Codeblocks 16.01 和 C11。
编辑:我被告知盒子字符,问题已经演变成如何打印这些字符,因此标题和标签发生了变化。
【问题讨论】:
-
em dash 不是 ASCII 的一部分,只有当您的编译器符合 C95 标准时,您才能使用
wchar。你的终端和操作系统也应该支持它。 -
在 UTF8 语言环境的 Linux 上工作。
-
良好的传统 id 以 unicode 数字编写源代码。非 ASCII 源可能会出现后期错误
-
如果您要使用非 ascii 字符来绘制这些行,不妨使用box drawing characters。然后至少它看起来像线条在一起。
标签: c windows unicode special-characters