Выводит текст в поле фиксированной ширины с выравниванием по левому краю. См. эту ссылку . Это использует второе переопределение этой функции, которая принимает маску, в которой устанавливаются определенные флаги.
Это переопределение удаляет все существующие флаги, установленные в std::ios_base::adjustfield
, который обрабатывает выравнивание текста, выводимого через объект stream
.
Переопределение, которое не принимает маску флага (второй параметр), просто дополнительно устанавливает указанный флаг, что не имеет большого смысла в случае adjustfield
, поскольку действительные значения только left
, right
и internal
, которые все имеют дело с текстовым выравниванием.
Надеюсь, этот небольшой пример прояснит:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout.setf(std::ios::left, std::ios::adjustfield);
cout << setfill('^') << setw(10) << "Hello" << "\n";
cout.setf(std::ios::right, std::ios::adjustfield);
cout << setfill('0') << setw(10) << "99\n";
return 0;
}
Дает вывод:
Hello^^^^^
000000099