При исходных стандартных настройках cout получится a*b. Манипулятор hex переключает вывод целых чисел в шестнадцатеричную систему и действует на оба числа.
Что выведет поток cout при применении манипулятора hex
При исходных стандартных настройках cout получится a*b. Манипулятор hex переключает вывод целых чисел в шестнадцатеричную систему и действует на оба числа.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какое содержимое появится в консольном выводе после выполнения следующего кода:
cout << hex << 10 << "*" << 11;
Ответ
При исходных стандартных настройках cout получится a*b. Манипулятор hex переключает вывод целых чисел в шестнадцатеричную систему и действует на оба числа.
Десятичные 10 и 11 записываются как a и b; строка "*" выводится без преобразования. Ни пробелы, ни перевод строки эта цепочка не добавляет.
Флаг основания сохраняется и для последующего вывода. Чтобы вернуться к десятичной записи, используйте std::dec. Ранее установленные uppercase или showbase изменили бы внешний вид, поэтому ответ a*b предполагает отсутствие таких дополнительных флагов.