Utilizando a biblioteca iomanip C++

Fornece recursos para manipular a formatação de saída


Utilizando a biblioteca iomanip C++

A biblioteca <iomanip> fornece recursos para manipular a formatação de saída, como a base usada ao formatar inteiros e a precisão dos valores de ponto flutuante .

Ela dispõe das seguintes funções:

  • setiosflags - Define formato dos sinalizadores
  • resetiosflags - Reseta formato dos sinalizadores
  • setbase - Define a base dos sinalizadores
  • setfill - Define o preenchimento dos caracteres
  • setprecision - Define a precisão dos decimais
  • setw - Define a largura de um campo
  • get_money - Obtém o valor monetário
  • put_money - Insere o valor monetário
  • get_time - Obtém a hora e data
  • put_time - Obtém a hora e data

Alguns exemplos

setfill e setw

Preenche com determinado caractere ao lado esquerdo do número(int, float, double,…)

#include <iostream>
#include <iomanip>

int main(){
  std::cout << std::setfill (' ') << std::setw( 10 );
  std::cout << 3.69f << '\n';
  return 0;
}

Preencheu com 6 espaços em branco(10 menos a quantidade de caracteres do número), logo a saída será: ` 3.69. Se alterarmos o std::setfill (‘ ‘) por std::setfill (‘-‘) a saída será: ——3.69` .


setprecision

Define quantos algarismo você deseja que apareça se não houver mais após a vírgula( nesse caso, ponto . ), preencherá com zeros 0 se usarmos std::fixed .

#include <iostream>
#include <iomanip>

int main(){
  double pi = 3.14159;
  std::cout << std::setprecision( 3 ) << pi << '\n';
  return 0;
}

Saída: 3.14

#include <iostream>
#include <iomanip>

int main(){
  double pi = 3.14159;
  std::cout << std::setprecision( 4 ) << pi << '\n';
  return 0;
}

Saída: 3.142 porquê o próximo número significativo é igual ou maior à 5, logo ele apromixa o anterior .

E se alterar para std::setprecision( 9 ), a saída será: 3.14159 não completará com zeros, mas usando std::fixed

#include <iostream>
#include <iomanip>

int main(){
  double pi = 3.14159;
  std::cout << std::fixed << std::setprecision( 9 ) << pi << '\n';
  return 0;
}

A saída será: 3.141590000.


get_money e put_money

Informa o valor em inteiro, em outras palavras transforma: float, double,… em inteiro. São úteis para uso com inserção de dados. Exemplo:

#include <iomanip>
#include <iostream>

int main() {
  long double preco;
  std::cout << "Informe o preço: ";
  std::cin >> std::get_money( preco );

  if( std::cin.fail() ){
    std::cerr << "Falha ao ler o preço" << '\n';
    return 1;
  }else{
    std::cout << "O preço é: " << std::put_money( preco ) << '\n';
  }

  return 0;
}


get_time

Trata a inserção de horas, exemplo:

#include <iostream> 
#include <iomanip> 
#include <ctime> // struct std::tm

int main(){
  struct std::tm dthr;
  std::cout << "Informe a hora: ";
  std::cin >> std::get_time(&dthr,"%R");   // extrai as horas em formato 24H

  std::cout << "São " << 
               dthr.tm_hour << " horas e " 
               << dthr.tm_min << " minutos\n";

  return 0;
}

Exemplo:

Informe a hora: 12:23
São 12 horas e 23 minutos

Por hoje é só, são pequenas doses diárias que farão sempre nos manter antenado com o C++ !

Acompanhe o cpp::daily

Deseja aprender C++ e criar seus programas Gráficos e para Terminal com portabilidade para Linux e Windows?

Então se inscreva nos nossos Cursos de C++ Moderno . Você aprender criar:

Acesse o endereço:

https://terminalroot.com.br/cpp/ e saiba mais!


Para mais informações consulte:


cppdaily


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!


caso queira entrar em contato conosco, envie-nos um e-mail.