Предположительно, вы используете printf
для вывода столбцов в первую очередь. Вы можете использовать дополнительные модификаторы в строке формата, чтобы убедиться, что все выровнено.
- Чтобы напечатать столбец определенной ширины (выровненный по правому краю), добавьте ширину перед флагом форматирования, например, «% 10s» напечатает столбец шириной 10. Если длина строки превышает 10 символов, столбец будет длиннее, чем вы хотите, поэтому выберите максимальное значение. Если строка короче, она будет дополнена пробелами.
- Чтобы выровнять столбец по левому краю, поставьте перед ним знак -, например, "% -10s". Мне нравится выравнивать строки по левому краю и цифры по правому краю, лично.
- Если вы печатаете адреса, вы можете изменить символы заполнения с пробелов на нули с начальным нулем: "% 010x".
Чтобы дать более подробный пример:
printf("%-30s %8s %8s\n", "Name", "Address", "Size");
for (i = 0; i < length; ++i) {
printf("%-30s %08x %8d\n", names[i], addresses[i], sizes[i]);
Это напечатало бы три столбца следующим образом:
Name Address Size
foo 01234567 346
bar 9abcdef0 1024
something-with-a-longer-name 0000abcd 2048