Estou tentando encontrar uma boa maneira de imprimir os 0s iniciais, como 01001, para um CEP. Embora o número seja armazenado como 1001, qual é uma boa maneira de fazer isso?
Eu pensei em usar as instruções de caso / se, então, descobrir quantos dígitos o número tem e depois convertê-lo em uma matriz de caracteres com 0 extra para impressão, mas não posso deixar de pensar que pode haver uma maneira de fazer isso com o sintaxe do formato printf que está me iludindo.
A solução correta é armazenar o CEP no banco de dados como uma STRING. Apesar de parecer um número, não é. É um código, onde cada parte tem significado.
Um número é algo em que você faz aritmética. Um código postal não é isso.
fonte
Você coloca um zero antes da largura mínima do campo:
fonte
O CEP é um campo altamente localizado, muitos países têm caracteres em seus códigos postais, por exemplo, Reino Unido, Canadá. Portanto, neste exemplo, você deve usar um campo string / varchar para armazená-lo, a qualquer momento enviando ou recebendo usuários / clientes / clientes / etc de outros países.
No entanto, no caso geral, você deve usar a resposta recomendada (
printf("%05d", number);
).fonte
Se você estiver em uma máquina * NIX:
Isso mostrará uma página de manual, semelhante a:
Mesmo que a pergunta seja para C, esta página pode ser útil .
fonte
man
comando, ele será restrito a essa seção específica. Sem ele, você obterá a página de manual do comando shell, emprintf
vez da função C.Aqui, "05" diz "use 5 dígitos com zeros à esquerda".
fonte
printf permite várias opções de formatação.
ex:
fonte
Você economizará um monte de problemas (a longo prazo) se armazenar um CEP como uma sequência de caracteres, que é, em vez de um número, que não é.
fonte
Mais flexível. Veja um exemplo de impressão de linhas de números justificados à direita com larguras fixas e preenchimento de espaço.
A função e a macro são projetadas para que os printfs sejam mais legíveis.
fonte
#define FMT(x) (getFmt(8,x).c_str())
(observe o parâmetro x !), Em oposição a uma variável (que é o que seu código faz).Se você precisar armazenar o CEP em um CEP de matriz de caracteres [], poderá usar o seguinte:
fonte