Вы находитесь на странице: 1из 3

Biblioteca iomanip Formatao de Sada A biblioteca iomanip utilizada para formatar a sada das informaes em programas C++.

+. O arquivo header iomanip.h fornece manipuladores parametrizados para manipulao das informaes de sada que sero exibidas no console. Esta biblioteca dispe das seguintes funes: Funo setprecision(int n) setw(int n) Descrio Ajusta a preciso do ponto flutuante para n casas decimais Define a largura do campo para n, incluindo espaos em branco esquerda do valor que ser impresso at que o comprimento da string tenha o valor n. Define o caractere de preenchimento como n. Os espaos em branco definidos no setw sero substitudos pelo caractere n.

setfill(char n)

Exemplo 1: Formatar a sada de um valor float para 2 casas decimais. #include <iomanip> float total = 24.567845; cout << setprecision(2) << total; // Neste caso o cout foi formatado pelo setprecision e retornar apenas duas casas decimais para a varivel total, sendo assim ser impresso na tela o valor 24.56. Exemplo 2: cout << setw(6) << setfill('0') << 3.1; // Este cout imprime "0003.1". Observe que o total de caracteres impressos 6 (valor definido no setw) e que os espaos em branco esquerda foram substitudos por 0, definido no setfill. Uma alternativa ao uso da biblioteca iomanip a utilizao das propriedades do cout. O setprecision da biblioteca iomanip pode ser substitudo pela expresso cout.precision(int n). Desta forma, seria utilizado da seguinte forma: float valorTotal = 24.567545; cout.precision(2); cout << valorTotal; // Imprime 24.56, pois o precision do cout foi setado em 2 casas decimais. Ao utilizarmos as formataes de sada, devemos tambm considerar as possveis flags (sinalizadores) utilizados pelo cout. A exibio de um valor float/double pode ser feita em formato cientfico (5.7e+002) ou na forma de nmero real (574.71). Este formato definido pela propriedade setf.

Exemplo 3: float valorTotal = 574.718765; // Imprime 574.71 cout.setf(ios::fixed); cout << setprecision(2) << valorTotal << "\n\n"; // Imprime 5.7e+002 cout.setf(ios:: scientific); cout << setprecision(2) << valorTotal << "\n\n"; Abaixo segue tabela com os 16 parmetros aceitos pelo cout.setf. Sinalizador (parmetro) ios::skipws ios::left ios::right ios::internal ios::dec ios::oct ios::hex ios::showbase ios::showpos ios::uppercase ios::showpoint ios::fixed ios::scientific ios::unitbuf ios::stdio ios::boolalpha Descrio (Ignora o espao em branco na entrada) caracteres de espao em branco iniciais (espaos, tabulaes, novas linhas) so descartados ao efetuar a entrada (Sada ajustada esquerda) (Sada ajustada direita) (Preenchimento aps indicador de sinal ou base) Determina como um valor impresso posicionado dentro do seu campo (rea reservada para o valor na pgina impressa). (Converso em decimal) (Converso em octal) (Converso em hexadecimal) Determina quando uma notao decimal, octal ou hexadecimal ser usada para imprimir e ler os valores. (Mostra indicador de base na sada) (Mostra o sinal "+" em inteiros positivos) (Sada hexadecimal maiscula) (Mostra ponto decimal - sada em ponto flutuante). Usa notao normal para exibir valores numricos em ponto flutuante 123.45) Valores em ponto flutuante so exibidos usando-se notao cientfica 1.23E2 (Libera flush - todas as streams depois da insero) (Libera flush - stdout, stderr depois da insero) (Valores booleanos podem ser recebidos ou mostrados)

Outra forma de formatao da sada utilizando o printf, neste caso no necessrio utilizar a biblioteca iomanip. O printf define um formato para modificao dos valores float e double ao serem impressos. Para isso, ao invs de utilizarmos o parmetro %f para demarcar variveis reais, utilizaremos o valor %.xf, onde x o total de casas decimais que queremos imprimir na sada. Exemplo 4: Formatar a sada de um valor float para 2 casas decimais usando printf. float total = 24.567845; printf("Imprimindo valor formatado com printf %.2f ", total); // Neste caso, ser impresso 24.56, formatado em duas casas decimais pelo %.2f

Вам также может понравиться