Функция C++ setw() используется для задания ширины поля, синтаксис имеет следующий вид:
setw(n)
n обозначает ширину, выраженную числом.
Функция setw() влияет только на вывод, следующий непосредственно за ней.Когда длина непосредственно следующего поля вывода меньше n, перед ним добавляются пробелы; когда длина поля вывода больше n, всё поле выводится как есть.
Следующий пример демонстрирует использование функции setw():
Пример
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
// Установить ширину 4 в начале; длина следующей строки примера больше 4, поэтому это не влияет
cout << setw(4) << "example" << endl;
// Установить ширину 4 в середине; следующая строка example имеет длину больше 4, поэтому это не оказывает эффекта
cout << "example" << setw(4) << "example" << endl;
// Установить ширину поля равной 14 в начале; example содержит 6 символов, поэтому перед ним добавляется 8 пробелов
cout << setw(14) << "example" << endl;
// Установить ширину поля равной 14 в середине; example содержит 6 символов, поэтому перед ним добавляется 8 пробелов
cout << "example" << setw(14) << "example" << endl;
return 0;
}
#include <iomanip>
using namespace std;
int main()
{
// Установить ширину 4 в начале; длина следующей строки примера больше 4, поэтому это не влияет
cout << setw(4) << "example" << endl;
// Установить ширину 4 в середине; следующая строка example имеет длину больше 4, поэтому это не оказывает эффекта
cout << "example" << setw(4) << "example" << endl;
// Установить ширину поля равной 14 в начале; example содержит 6 символов, поэтому перед ним добавляется 8 пробелов
cout << setw(14) << "example" << endl;
// Установить ширину поля равной 14 в середине; example содержит 6 символов, поэтому перед ним добавляется 8 пробелов
cout << "example" << setw(14) << "example" << endl;
return 0;
}
Вывод вышеприведённого кода:
example
exampleexample
example
example example
По умолчанию setw() заполняет пробелами, и его можно использовать вместе сsetfill(), чтобы задать другие символы для заполнения.
Пример
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout << setfill('*') << setw(14) << "example" << endl;
return 0;
}
#include <iomanip>
using namespace std;
int main()
{
cout << setfill('*') << setw(14) << "example" << endl;
return 0;
}
Вывод вышеприведённого кода:
********example