Правое выравнивание выходного потока в С++

Я работаю на С++. Мне дается 10-значная строка (массив char), которая может содержать или не содержать 3 дефиса (до 13 символов). Есть ли встроенный способ, чтобы поток правильно его оправдал?

Как я могу перейти к правильной печати в потоке? Есть ли встроенная функция/способ сделать это, или мне нужно проложить 3 пробела в начале массива символов?

Я имею дело с ostream, чтобы быть конкретным, не уверен, что это важно.

Ответ 1

Вам нужно использовать std::setw в сочетании с std::right.

#include <iostream>
#include <iomanip>

int main(void)
{
   std::cout << std::right << std::setw(13) << "foobar" << std::endl;
   return 0;
}

Ответ 2

Да. Вы можете использовать setw() для установки ширины. Обоснование по умолчанию имеет правомерное значение, а заполняемое по умолчанию пространство - это пробел, поэтому это добавит пробелы влево.

stream << setw(13) << yourString

Смотрите: setw(). Вам нужно включить <iomanip>.

Ответ 3

Для получения дополнительной информации см. "setw" и "right" в вашей любимой С++ (iostream) ссылке:

 cout << setw(13) << right << your_string;