Как я могу заполнить строку пробелами слева при использовании printf?
Например, я хочу напечатать «Hello» с 40 пробелами перед ним.
Кроме того, строка, которую я хочу напечатать, состоит из нескольких строк. Нужно ли мне печатать каждую строку отдельно?
РЕДАКТИРОВАТЬ: Чтобы быть ясным, я хочу, чтобы перед каждой строкой было напечатано ровно 40 пробелов.
источник
Я использую эту функцию для создания отступа в моем выводе (например, для печати древовидной структуры). Это
indent
количество пробелов перед строкой.источник
printf(..., indent, "", ...)
)Этот оператор зарезервирует строку из 40 символов, напечатает строку в конце строки (удалив лишние пробелы, чтобы общая длина строки была постоянной и равной 40). То же самое можно использовать для символов и целых чисел следующим образом:
Этот метод, использующий параметр для определения пробелов, полезен, когда требуется переменное количество пробелов. Эти операторы по-прежнему будут работать с целочисленными литералами следующим образом:
Надеюсь, это поможет кому-то вроде меня в будущем.
источник
error: empty character constant
за''
. Не должно быть' '
?"Hello"
может быть что угодно, он должен был привести примерЕсли вы хотите, чтобы перед строкой было ровно 40 пробелов, вам нужно просто сделать:
Если это слишком грязно, вы можете сделать (но это будет медленнее, чем вручную ввести 40 пробелов):
printf("%40s%s", "", myStr );
Если вы хотите, чтобы строка была выстроена в столбце 40 (то есть имела до 39 пробелов, следующих за ней, чтобы крайний правый символ находился в столбце 40), сделайте следующее:
printf("%40s", myStr);
Вы также можете поставить "до" 40 пробелов ПОСЛЕ строки, выполнив:
printf("%-40s", myStr);
источник