printf变量char多次

时间:2019-06-16 00:11:45

标签: c printf ascii repeat

我需要打印某些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转换。

1 个答案:

答案 0 :(得分:3)

您可以这样做:

char bar[21];
memset(bar, 205, 20);
bar[20] = '\0';
puts(bar);

作为奖励,这比printf()更有效,因为整个字符串会立即写入stdout。