ASCII art — Фиксированные границы в C / Stack Overflow

Я пытаюсь создать программу, которая будет генерировать таблицу символов, которую я смогу легко изменить. Тем не менее, я хочу, чтобы он выглядел хорошо, поэтому я собираюсь использовать некоторую графику ASCII для создания границ на листе. Мне было интересно, как я мог создать границы, которые использовали | а также - но они будут двигаться, когда цифры изменятся.

Я предполагаю, что есть какая-то функция, которую я могу использовать, чтобы разместить окончание | в точном месте это должно быть, а не двигаться, когда число идет от 6 до 16 или от 16 до 116, или слова и буквы.

Если кто-нибудь знает, как это сделать, я был бы очень признателен.

-4

Решение

Вы можете использовать спецификаторы ширины поля в printf, Для выравнивания влево вы добавляете - префикс. например

#include <stdio.h>

int main(void)
{
printf( "| Greed    : %-10d |\n", 6 );
printf( "| Gluttony : %-10d |\n", 16 );
printf( "| Lust     : %-10d |\n", 116 );
return 0;
}

Выход:

| Greed    : 6          |
| Gluttony : 16         |
| Lust     : 116        |

В качестве альтернативы, вы можете принять более программную стратегию, как это предлагается RICi в комментариях. Это будет использовать возвращаемое значение (если не отрицательное), которое говорит вам, сколько символов было написано.

Читайте больше на printf и его спецификаторы формата здесь: http://en.cppreference.com/w/cpp/io/c/fprintf

1

Другие решения

Других решений пока нет …