Манипулятор, управляющий форматированием показателя степени, отсутствует (я полагаю, вы имеете в виду показатель степени, а не мантиссу; также «официальное» имя, используемое для мантиссы, значимо ).Что еще хуже, я не вижу ни одного правила в стандарте C, которое ограничивает форматирование показателя степени.Я понимаю, что речь идет о C ++, но с целью подробностей форматирования стандарт C ++ относится к стандарту C.
Единственный известный мне подход - это использовать собственный std::num_put<char>
фасет, который форматируетзначения по желанию.Этот аспект затем будет помещен в std::locale
, который, в свою очередь, будет imbue()
преобразован в std::cout
.Потенциальная реализация могла бы использовать фасет std::num_put<char>
по умолчанию (или snprintf()
, который, к сожалению, возможно, проще), чтобы отформатировать число с плавающей запятой и затем убрать начальные нули из показателя степени.