Ответ 1
Вам нужно использовать std::setw
в сочетании с std::right
.
#include <iostream>
#include <iomanip>
int main(void)
{
std::cout << std::right << std::setw(13) << "foobar" << std::endl;
return 0;
}
Я работаю на С++. Мне дается 10-значная строка (массив char), которая может содержать или не содержать 3 дефиса (до 13 символов). Есть ли встроенный способ, чтобы поток правильно его оправдал?
Как я могу перейти к правильной печати в потоке? Есть ли встроенная функция/способ сделать это, или мне нужно проложить 3 пробела в начале массива символов?
Я имею дело с ostream, чтобы быть конкретным, не уверен, что это важно.
Вам нужно использовать std::setw
в сочетании с std::right
.
#include <iostream>
#include <iomanip>
int main(void)
{
std::cout << std::right << std::setw(13) << "foobar" << std::endl;
return 0;
}
Да. Вы можете использовать setw()
для установки ширины. Обоснование по умолчанию имеет правомерное значение, а заполняемое по умолчанию пространство - это пробел, поэтому это добавит пробелы влево.
stream << setw(13) << yourString
Смотрите: setw()
. Вам нужно включить <iomanip>
.
Для получения дополнительной информации см. "setw" и "right" в вашей любимой С++ (iostream) ссылке:
cout << setw(13) << right << your_string;