Найти в Дзене

Как вывести логическое значение в виде строки в С++

Иногда, хотя и очень редко, необходимо вывести на экран значение логической переменной в виде строки. Например, в С++ при выводе на экран значения логической переменной вы увидите 0 (false) или 1 (true). И вот этот код:

bool res = true;
cout << res << endl;

выведет на экран число 1.

Однако в С++ (да и во многих других языках) можно выводить логические значения в виде строки. То есть вместо 0 и 1 можно выводить false и true. Правда, это потребует дополнительной строчки кода:

bool res = true;
cout.setf(cout.boolalpha);
cout << res << endl;

этот пример выведет на экран true, а не 1.

Здесь с помощью функции setf() мы установили флаг boolalpha, который влияет на вывод логических значений. Если флаг установлен, то логические значения выводятся как строки (false или true). Если флаг сброшен, то логические значения выводятся как числа (0 или 1).

Сбросить этот флаг можно с помощью функции unsetf():

cout.unsetf(cout.boolalpha);

После этого логические значения снова будут выводиться как числа. А еще вместо cout.boolalpha можно использовать ios::boolalpha:

cout.setf(ios::boolalpha);

Это тоже будет работать.

Подобным образом можно управлять и другими флагами форматирования вывода на экран. Но о них как-нибудь в другой раз.

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.