Я хочу cout
вывести int с ведущими нулями, поэтому значение 1
будет напечатано как, 001
а значение - 25
как 025
. Как я могу это сделать?
c++
formatting
cout
jamieQ
источник
источник
char* or char[]
), а не на консоль напрямую. На самом деле я пишу функцию, которая возвращает отформатированную строку<iostream>
и<iomanip>
в начало вашего файла, и вам нужно будет написатьusing namespace std;
, но это плохая практика, поэтому, возможно, вместо этого вы должны префикс трех идентификаторов в этом ответе сstd::
.Еще один способ добиться этого - использовать старую
printf()
функцию языка СиВы можете использовать это как
Это напечатает
09 - 01 - 0001
на консоли.Вы также можете использовать другую функцию
sprintf()
для записи форматированного вывода в строку, как показано ниже:Не забудьте включить
stdio.h
заголовочный файл в вашу программу для обеих этих функцийЧто следует отметить:
Вы можете заполнить пробел либо 0, либо другим символом (не числом).
Если вы напишите что-то вроде
%24d
спецификатора формата, это не будет заполнять2
пробелы. Это установит pad на24
и заполнит пустые места.источник
Это производит вывод:
источник
источник
char* or char[]
), а не на консоль напрямую. На самом деле я пишу функцию, которая возвращает отформатированную строкуstd::stringstream
.sprintf(s, "%02d-%02d-%04d", dd, mm, yy);
гдеs
этоchar*
иdd, mm, yy
имеютint
тип. Это запишет02-02-1999
формат в соответствии со значениями в переменных.В C ++ 20 вы сможете делать:
источник
Я бы использовал следующую функцию. Мне не нравится
sprintf
; это не делает то, что я хочу !!источник
Другой пример вывода даты и времени с использованием нуля в качестве символа заполнения в случаях однозначных значений: 2017-06-04 18:13:02
источник