переменная printf char несколько раз - PullRequest
0 голосов
/ 16 июня 2019

Мне нужно напечатать определенный символ 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 <20 для печати? </p>

Редактировать: попытка прямого printf("═"); приведет к выводу ΓòÉ. Опять же, из-за преобразования unicode-ascii.

1 Ответ

3 голосов
/ 16 июня 2019

Вы можете сделать это:

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

В качестве бонуса это более эффективно, чем printf (), потому что вся строка записывается в стандартный вывод сразу.

...