LINUX.ORG.RU

Выравнивание вывода


0

0

Как сделать так, чтобы следующий вывод

printf ("%s %s", "one", "two");

был ограничен по ширине и выровнен (скажем, по левому краю)?

Для одного параметра это будет printf ("%-10s", "one"). Для двух и более обязательно использовать промежуточный буфер?

anonymous

То есть надо, чтобы выводилось не более десяти символов? Тогда можно так:

char* x;
char* x2;
int width = 10;
int xlen, xlen2;

x = "oneone";
xlen = width - 1;
x2 = "twotwotwo";
xlen2 = width - strlen(x) - 1;
xlen2 = (xlen2 > 0) ? xlen2 : 0;
printf("`%.*s %.*s'\n", xlen, x, xlen2, x2);

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.