Как проверить какие флаги потока вывода установлены

468
24 октября 2017, 02:28

Есть задание по с++:

Проверить какие флаги потока вывода установлены и заменить попарно на левое выравнивание на правое выравнивание (и наоборот) убрать + перед числом, если установлен и установить, если сброшен.

Разобрался как изменить выравнивание и установить +. Но не могу разобраться как проверить какие флаги уже установлены. Где можно подробнее об этом почить или посмотреть примеры? Может кто-то может показать пример кода.

Answer 1

Собственно есть такая функция-член для потоков, которая так и называется flags. Можно как установить новые флаги, так и считать имеющиеся.

Проверить какой-то конкретный флаг на наличие можно с помощью битовой операции "и". Например, на флаг showpos:

auto flags = stream.flags();
if (flags & std::ios::showpos)
{ 
   // showpos установлен
}
READ ALSO
Почему не срабатывает событие @click?

Почему не срабатывает событие @click?

Событие select_list_currentClick(e) должно переключать класс open для того, чтобы появлялся селект как справа на скрине Но оно почему-то срабатывает очень...

334
jQuery - На телефонах owl.carousel показывает все слайды

jQuery - На телефонах owl.carousel показывает все слайды

На телефонах owlcarousel показывает все слайды

210
Динамическая подгрузка мета тегов

Динамическая подгрузка мета тегов

Есть сайт с записямиПользователю предлагаеться поделиться записью в Фейсбук

212
Metronic и Yii2 - почему не работают скрипты?

Metronic и Yii2 - почему не работают скрипты?

Купил тему Metronic и хочу ее подключить к своей системеУ темы подключаются 2 скрипта

608