Я хочу перегружатьПерегрузка ostream & operator <<: как заставить вывод нулей?
ostream& operator<<(ostream& out, const myType& y)
для вывода больших целых чисел без знака, представленных в MyType вектором unsigned short
. Так что если этот вектор имеет, скажем, элементы 1f, a356, 13d5
, я хочу получить результат 1fa35613d5
- сейчас мне это нужно только для hex
или oct
. В частности, 1, 0, 0
должен быть выведен на 100000000
. Я хочу добиться этого, последовательно выводя элементы вектора. Что я получаю с помощью этого метода, однако, 100
, несмотря на то, что я установил
out.width(4);
out.fill('0');
out << std::internal;
out << std::noskipws;
Конечно, я мог бы первым написать ushort
в строку, а затем выход, но я бы предпочел, чтобы использовать только инструкции по форматированию для out
приводят к тому, что это облегчает уважение настроек hex
или oct
от out
. Какой вариант форматирования мне здесь не хватает?
Построение собственной строки будет намного более эффективным (быстрее, используйте меньше памяти), чем использование шестнадцатеричного или восьмеричного формата для «ostream», что я бы пошел на дополнительную проблему проверки текущей базы а затем сделать свое собственное форматирование. –