🍪 Как std::hex меняет поведение вывода?



Манипуляторы — не просто функции. Они изменяют внутренние флаги потока.

💡 Под капотом — состояние

std::ostream хранит std::ios_base::fmtflags:

std::cout << std::hex << 255; // ff
std::cout << 10; // a (всё ещё hex!)

⚡️ Флаги остаются:

std::cout.setf(std::ios::hex, std::ios::basefield);
// Эквивалентно std::hex

💡 Сохранение состояния:

std::cout << std::hex << 255;
// Или
std::ios oldState(nullptr);
oldState.copyfmt(std::cout);
// ... вывод ...
std::cout.copyfmt(oldState); // Восстановление


❗️Манипуляторы — это состояние. Не забывай сбрасывать флаги в коде.
Просмотры: 246
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти