我需要打印某个 ASCII 字符 DOUBLE_HORIZONTAL_LINE(205) "═"20 次。然而,该文件是用 unicode 编码的,所以我需要执行类似 printf("%c", 205)
的操作,这很好,只是我不知道如何重复该字符。我尝试使用 %1$c
,但只是按字面意思打印了“$c”。
printf("%1$c%1$c\n", 205); //205 = ASCII '═'
我原以为上面的代码片段会打印两次═,但它却打印了$c$c。
我真的需要做一个 for i<20 printf 循环吗?
编辑:尝试直接 printf("═");
将导致输出 ΓòÉ
。同样,由于 unicode-ascii 转换。
最佳答案
你可以这样做:
char bar[21];
memset(bar, 205, 20);
bar[20] = '\0';
puts(bar);
作为奖励,这比 printf() 更有效,因为整个字符串会立即写入标准输出。
关于c - printf变量char多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56615109/