Как к строкам формата с помощью printf () для получения равной длины в выводе?

Предложения Microsoft .NET 3.5 Набора Обучения Улучшениям это содержит документацию и пример кода для ADO.NET EF

82
задан Sнаđошƒаӽ 11 October 2016 в 10:16
поделиться

5 ответов

Вы можете указать ширину в строковых полях, например

printf("%-20s", "initialization...");

, и тогда все, что будет напечатано с этим полем, будет дополнено пробелами до указанной вами ширины.

- ] выравнивает текст в этом поле по левому краю.

143
ответ дан 24 November 2019 в 09:09
поделиться

printf позволяет форматировать с помощью спецификаторов ширины. например,


printf( "%-30s %s\n", "Starting initialization...", "Ok." );

Вы должны использовать спецификатор отрицательной ширины, чтобы указать выравнивание по левому краю, потому что по умолчанию используется выравнивание по правому краю.

22
ответ дан 24 November 2019 в 09:09
поделиться

Также имеется модификатор % n , который может помочь в определенных обстоятельствах. Он возвращает столбец, в котором до сих пор находилась строка. Пример: вы хотите записать несколько строк, которые находятся в пределах ширины первой строки, как таблица.

int width1, width2;
int values[6][2];
printf("|%s%n|%s%n|\n", header1, &width1, header2, &width2);

for(i=0; i<6; i++)
   printf("|%*d|%*d|\n", width1, values[i][0], width2, values[i][1]);

напечатает 2 столбца одинаковой ширины любой длины, две строки header1 и header2 может иметь. Я не знаю, все ли реализации имеют % n , но Solaris и Linux имеют.

12
ответ дан 24 November 2019 в 09:09
поделиться

Начните с использования табуляции, модификатора символа \ t . Он переместится в фиксированное место (столбцы, терминальный жаргон). Однако это не помогает, если есть различия, превышающие ширину столбца (4 символа, если я правильно помню).

Чтобы исправить это, напишите свой «OK / NOK», используя фиксированное количество табуляций (5? 6?, Попробуйте), затем верните ( \ r ) без новой строки и напишите свое сообщение.

-2
ответ дан 24 November 2019 в 09:09
поделиться

Существует также довольно нетехнологичное решение - подсчитывать добавление пробелов вручную, чтобы ваши сообщения выстраивались в линию. Ничто не мешает вам включать несколько завершающих пробелов в строки сообщения.

0
ответ дан 24 November 2019 в 09:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: