Manipuladores de tamanho de campo na impressão em C++

5 respostas
rica

Olá pessoal…

sou novo aqui no GUJ em no mundo da programação também.
Estou estudando C++ e o livro que estou usando como referência é o "Treinamento em linguagem C++" da Victorine Viviane Mizrahi, realmente um livro muito bom.
No livro, para fazer a entrada/saída de dados é usado cin/cout e na faculdade o professor uma scanf/printf, particularmente eu prefiro o scanf/printf.
No livro, ensina a usar os manipuladores de tamanho de campo na impressão(setw, setprecision e setfill) com cin/cout e quero saber como faço para usar com scanf/printf ou se exite alguma outra forma?

ex.: cout << "Lapis " << setw(12) << LAPIS;
cout << "Borracha " << setw(12) << BORRACHA;

Quero fazer isso com printf!

Agradeço a atenção

5 Respostas

E

Você pode usar “%-12.12s” se quiser que fique alinhado à esquerda e ocupe exatamente 12 posições (truncando se for o caso), e “%12.12s” se quiser que fique alinhado à direita e ocupe exatamente 12 posições (truncando se for o caso). Se usar apenas “%-12s”, ele ocupa pelo menos 12 posições, mas não trunca.

quikkoo
printf("%12s\n", "lapis");
printf("%12s\n", "borracha");

mais detalhes em: cplusplus > reference > printf

flw, t+

rica

Pô galera, muito obrigado pela ajuda…

ViniGodoy

A diferença é que o cin e cout são classes do C++. Enquanto o printf é apenas uma função do C.

Agora, a maior parte das pessoas que conheço (inclusive eu) também acha o printf mais prático. O cout tem algumas vantagens, como permitir a sobrecarga do formato de texto da classe (mais ou menos com o toString() do Java), mas acho um benefício muito pequeno para uma forma tão escabrosa de usar.

E

ViniGodoy:
A diferença é que o cin e cout são classes do C++. Enquanto o printf é apenas uma função do C.

Agora, a maior parte das pessoas que conheço (inclusive eu) também acha o printf mais prático. O cout tem algumas vantagens, como permitir a sobrecarga do formato de texto da classe (mais ou menos com o toString() do Java), mas acho um benefício muito pequeno para uma forma tão escabrosa de usar.

Tanto é que provavelmente foi o próprio James Gosling que deve ter feito algum lobby para acrescentarem o printf ao Java 5 :slight_smile: - ele também está no seu time.

Criado 20 de agosto de 2010
Ultima resposta 20 de ago. de 2010
Respostas 5
Participantes 4