Я пытаюсь создать программу, которая будет генерировать таблицу символов, которую я смогу легко изменить. Тем не менее, я хочу, чтобы он выглядел хорошо, поэтому я собираюсь использовать некоторую графику ASCII для создания границ на листе. Мне было интересно, как я мог создать границы, которые использовали |
а также -
но они будут двигаться, когда цифры изменятся.
Я предполагаю, что есть какая-то функция, которую я могу использовать, чтобы разместить окончание |
в точном месте это должно быть, а не двигаться, когда число идет от 6 до 16 или от 16 до 116, или слова и буквы.
Если кто-нибудь знает, как это сделать, я был бы очень признателен.
Вы можете использовать спецификаторы ширины поля в 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
Других решений пока нет …