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 sinalizadoresresetiosflags
- Reseta formato dos sinalizadoressetbase
- Define a base dos sinalizadoressetfill
- Define o preenchimento dos caracteressetprecision
- Define a precisão dos decimaissetw
- Define a largura de um campoget_money
- Obtém o valor monetárioput_money
- Insere o valor monetárioget_time
- Obtém a hora e dataput_time
- Obtém a hora e datastd::quoted
- Adiciona aspas duplas em torna da string, ex.: Oi
→ "Oi"
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++ !
Então se inscreva nos nossos Cursos de C++ Moderno . Você aprender criar:
Acesse o endereço:
Para mais informações consulte: