Как вывести данные таблицей c++
при вводе данных структура колонок сбивается, не могу найти в интернете как сделать аккуратно всё. Может подскажите, как вообще работает вот это : %19s | %11.2lf | %5d | %17s |\n
void print_goods(good *goods, int size) {
printf("+---------------------+-------------+------------+-----------+------------+|------------+------------+------------+------------|\n");
printf("| name | price | count | genre | developer | year + min_cpu | min_ram | min_hdd | \n");
printf("+---------------------+-------------+------------+-----------|------------+|------------+------------+------------+------------|\n");
if (size == 0)
printf("| No goods was added... |\n");
for (int i = 0; i < size; i++)
printf("| %19s | %11.2lf | %5d | %17s |\n", goods[i].name, goods[i].price, goods[i].count,goods[i].title);
printf("+---------------------+-------------+------------+-----------|------------+|------------+------------+------------+------------|\n");
}