Страницы

Поиск по вопросам

среда, 15 мая 2019 г.

Как в потоке вывода std::cout задать количество выводимых символов целых числел либо формат их вывода?

У меня есть поток вывода в котором мне надо собрать строку определённого формата. Как мне задать формат потока вывода так что бы выводилось определённое количество символов целого числа. Например если int a = 7 то строка cout << "20" << a; должна вывести 2007 а не 207 или 20 7. Метод width добивает недостающие позиции пробелами а не '0'. Компилятор gcc 7.3.


Ответ

Используйте модификаторы setfill и setw из заголовочного файла
cout << setfill('0') << setw(5) << 12;
выведет: 00012
Ideone

Также можно использовать printf c форматом "%0?d", где вместо ? нужно подставить желаемую длину:
int dd = 1, mm = 2, yy = 3; printf("%02d - %02d - %02d", dd, mm, yy);
выведет: 01 - 02 - 03
Ideone

Комментариев нет:

Отправить комментарий