0Pricing
C++ Academy · Урок

Форматирование вывода с iomanip

Управляйте шириной, точностью, выравниванием и системами счисления с помощью заголовка iomanip.

«Форматирование вывода с iomanip» — бесплатный урок C++ Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C++ Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C++ Academy содержит 4 уроков всего.

Заголовок iomanip

Заголовочный файл <iomanip> предоставляет манипуляторы — специальные объекты, которые передаются в cout, чтобы изменить состояние его форматирования.

std::setw: ширина поля

std::setw(n) задаёт минимальную ширину только для следующего поля. Более короткие значения дополняются.

#include <iomanip>
std::cout << std::setw(10) << "Name" << std::setw(5) << "Age\n";
std::cout << std::setw(10) << "Ada"  << std::setw(5) << 36 << "\n";

std::setfill: символ заполнения

По умолчанию setw заполняет поле пробелами. Измените символ заполнения с помощью setfill — эта настройка сохраняется.

std::cout << std::setfill('0') << std::setw(4) << 42;
// 0042

std::left и std::right

Выравнивайте текст внутри поля setw. По умолчанию используется выравнивание по правому краю.

std::cout << std::left << std::setw(10) << "Ada" << "|\n";
std::cout << std::right << std::setw(10) << "Ada" << "|\n";

std::setprecision

Управляйте количеством значащих цифр или, вместе с std::fixed, количеством знаков после запятой.

double pi = 3.14159265;
std::cout << std::setprecision(4) << pi << "\n";  // 3.142
std::cout << std::fixed << std::setprecision(2) << pi; // 3.14

Форматы std::fixed, std::scientific и std::hexfloat

Переключайтесь между форматами чисел с помощью std::fixed, std::scientific и std::hexfloat.

double x = 12345.6789;
std::cout << std::scientific << x << "\n"; // 1.234568e+04
std::cout << std::fixed << x << "\n";      // 12345.678900

Системы счисления для целых: hex, oct, dec

Выводите целые числа в разных системах счисления. std::showbase добавляет префикс: 0x или 0.

int n = 255;
std::cout << std::hex << n << "\n";  // ff
std::cout << std::oct << n << "\n";  // 377
std::cout << std::dec << n << "\n";  // 255 (default)

std::boolalpha

Выводите логические значения словами вместо 1 и 0.

std::cout << std::boolalpha << true << "\n";  // true
std::cout << std::noboolalpha << true << "\n"; // 1

Манипуляторы сохраняют состояние

Большинство манипуляторов действуют, пока их не изменят. setw — исключение: он применяется только к следующему полю.

std::quoted для безопасных строк

std::quoted из <iomanip> заключает строку в двойные кавычки и экранирует содержащиеся в ней кавычки. Идеально подходит для строк журналов.

std::string name = "Ada \"Countess\"";
std::cout << std::quoted(name);
// "Ada \"Countess\""

C++20 std::format

Современный C++20 заменяет большую часть использования iomanip на std::format — типобезопасный программный интерфейс в стиле printf.

#include <format>
std::cout << std::format("{:>10} | {:.2f}\n", "pi", 3.14159);

Быстрая проверка

Какой манипулятор необходимо применять заново для каждого поля вывода?

Итоги

<iomanip> предоставляет манипуляторы для задания ширины, точности, выравнивания, системы счисления и кавычек. setw действует только для одного поля, остальные настройки сохраняются. В C++20 предпочитайте std::format для более понятного форматирования.

Часто задаваемые вопросы

Урок «Форматирование вывода с iomanip» бесплатный?

Да — полный текст урока «Форматирование вывода с iomanip» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C++ Academy, подпишись на CoddyKit PRO. Курс C++ Academy содержит 4 уроков всего.

Чему я научусь в уроке «Форматирование вывода с iomanip»?

Управляйте шириной, точностью, выравниванием и системами счисления с помощью заголовка iomanip. Ты практикуешь C++ Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C++ Academy?

Предыдущий опыт не требуется. C++ Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Форматирование вывода с iomanip»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C++ Academy?

Да. Каждый урок C++ Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Корректное использование std::cin и std::cout
  2. Форматирование вывода с iomanip
  3. Безопасное чтение ввода с помощью getline
  4. Работа с std::cerr и std::clog
← Назад к C++ Academy