М
Маша С++
@masha_cpp107 подп.
238просмотров
15 января 2026 г.
Score: 262
По умолчанию, при форматировании вывода в поток булевых значений, будет использоваться 1 и 0 для true и false. Пример: bool t = true; bool f = false; std::cout << t << " " << f << std::endl; // Выведет: 1 0 Возможно, что удобнее (особенно для отладки) выводить булевы значения строкой, также как они задаются в коде. Для этого нужно добавить в поток манипулятор boolalpha: std::cout << std::boolalpha; std::cout << t << " " << f << std::endl; // Выведет: true false Интересно то, что манипулятор действует на все последующие записи булевых значений для этого потока. То есть он будет применяться и после ; и после std::endl. Отменить форматирование булевых флагов можно записав в поток манипулятор std::noboolalpha: std::cout << std::noboolalpha << t << " " << f << std::endl; // 1 0 (Интересно, а для ввода это работает? кто проверит?) Честно говоря, мне бы хотелось увидеть нормальные true/false по-умолчанию, но видимо обратная совместимость. Еще одной интересной особенностью форматирования вывода является округление значений с плавающей точкой. Посмотрим на вывод такого примера (на вашем окружении может быть другой результат): double d1 = 0.1234567890; double d2 = 0.1234564890; std::cout << d1 << std::endl; std::cout << d2 << std::endl; // Вывод: // 0.123457 // 0.123456 Поток выбрал точность в 6 знаков после точки (мы эту точность не задавали, поэтому может быть другой), и проведет не отсечение, а округление в последней цифре.
238
просмотров
1448
символов
Нет
эмодзи
Нет
медиа

Другие посты @masha_cpp

Все посты канала →
По умолчанию, при форматировании вывода в поток булевых знач — @masha_cpp | PostSniper