Более быстрый подход:
Если максимальное количество отступов, которое вам когда-либо понадобится, известно заранее (что обычно имеет место при форматировании таблицы с фиксированной шириной, такой как у вас), вы можете использовать статический «отступ» нить и просто взять кусок из этого. Это будет быстрее, чем вызывать printf
или cout
в цикле.
static const char padder[] = "......................"; // Many chars
size_t title_len = strlen(title);
size_t pad_amount = sizeof(padder) - 1 - title_len;
printf(title); // Output title
if (pad_amount > 0) {
printf(padder + title_len); // Chop!
}
printf("[%d]", data);
Вы могли бы даже сделать это в одном утверждении, с некоторым прыжком веры:
printf("%s%s[%d]", title, padder + strlen(title), data);