Я могу сделать объект std::ostream
для вывода целых чисел в шестнадцатеричном виде, например
std::cout << std::hex << 0xabc; //prints `abc`, not the base-10 representation
Есть ли какой-либо манипулятор, универсальный для всех баз? Что-то вроде
std::cout << std::base(4) << 20; //I want this to output 110
Если есть, то у меня больше нет вопросов.
Если его нет, тогда я могу написать его? Разве это не потребует от меня доступа к частным деталям реализации std::ostream
?
Обратите внимание, что я знаю, что могу написать функцию, которая принимает число и преобразует его в строку, представляющую это число в любой базе. Или я могу использовать тот, который уже существует. Я спрашиваю о пользовательских манипуляторах потока - возможно ли это?
Заранее спасибо