Objetivos
Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.
- Entender o cout
- Entender o comando endl
- Métodos do cout
- Formatação básica
Aprender a truncar casas decimais
- Entender o cin
Métodos de cin
Os tópicos listados acima para estudo são referentes a aplicações console ou linha de comandos
podendo não ser válidos para outro tipo de aplicação.
Outros tipos de entrada de dados como arquivos de texto e binários serão vistos com mais detalhes
em C++: Leitura/Escrita em arquivos.
Entrada e saída de dados
Diferente da linguagem C, a linguagem C++ utiliza os objetos cout e cin para exibir
informações de saída e entrada para o usuário. O cout é usado para exibir informações na
saída(stdout) de dados padrão e o cin para obter informações da entrada(stdin) padrão de dados.
Saída de dados
Em C++, o objeto cout tem a mesma função do print utilizado na linguagem C
para exibição de dados para o usuário.
Sintaxe
cout << valor | expressao | variavel;
Exemplo 1
#include <iostream>
using namespace std;
int main()
{
string texto = "C/C++";
cout << texto;
return 0;
}
Saída
C/C++
Caracteres de escape
Diferente de print, cout não permite formatação de dados utilizando os conhecidos identificadores
de formatação como %d,%s e etc. Apenas aceita os caracteres de escape.
Tab. 1: Caracteres de escape
Caractere |
Impressão/Descrição |
\n |
Nova Linha |
\' |
Apóstrofe |
\" |
Aspas duplas |
\\ |
Contrabarra |
\t |
Tabulação horizontal |
\a |
Alerta sonoro |
\? |
Interrogação |
\v |
Tabulação vertical |
\e |
- |
\f |
- |
\nnn |
- |
\uhhh |
- |
\Uhhhhhhhh |
- |
Exemplo 2
#include <iostream>
using namespace std;
int main()
{
string texto = "C/C++";
cout << "Saída:\n" << texto;
return 0;
}
Saída
Saída:
C/C++
O exemplo acima, foi utilizado o caracter de escape \n para a quebra de linha.
Porém, c++ fornece o comando endl que faz o mesmo papel.
Sintaxe
valor | expressao << endl;
Exemplo 3
#include <iostream>
using namespace std;
int main()
{
cout << 777 << endl;
cout << 888 << endl;
}
Saída
777
888
O cout é um objeto da classe iostream definida pelo biblioteca <iostream> que já utilizamos
em vários exemplos. Essa classe possui algums métodos para a manipulação dos dados de saída.
Tab. 2: Métodos cout
Metodo |
Descrição |
put |
Escreve um caracter |
write |
Escreve caracteres de um string |
set |
Define formatação de saída |
unsetf |
Defaz formatação de saída |
O método put escreve um caracteres na saída de dados. Um caractere, char, é recebido
como argumento por esse método.
Sintaxe
cout.put(char ch);
Onde
ch: caractere que desejamos exibir
Exemplo 4
#include
using namespace std;
int main()
{
cout.put('C');
cout.put('+');
cout.put('+');
return 0;
}
Saída
C++
Utilizando o método write, podemos escrever uma string na saída de dados padrão. Esse
método recebe uma string como argumento bem como a quantidade de caracteres para escreve.
Sintaxe
cout.write(char[] str, int n);
Onde
str: string de desejamos imprimir
n: número de caracteres para imprimir
Exemplo 5
#include <iostream>
using namespace std;
int main()
{
char str[] = "Uma string c++";
cout.write(str,4);
return 0;
}
Saída
Uma
O método setf é utilizado para configurar o cout em relação a justificação
dos valores, notação científica e precisão.
Sintaxe
cout.setf(option);
Onde
option: left, right, fixed e scientific(notação científica)
Exemplo 6
#include <iostream>
using namespace std;
int main()
{
cout << 1.99999 << " ";
cout.setf(ios::scientific);
cout << 1.99999;
return 0;
}
Saída
1.99999 1.999990e+00
O método unsetf desfaz as definições feitas pelo método setf como pode ser visto
no exemplo abaixo:
Sintaxe
cout.unsetf(option);
Onde
option: left, right, fixed e scientific(notação científica)
Exemplo 1
#include <iostream>
using namespace std;
int main()
{
cout.setf(ios::scientific);
cout << 1.99999 <<endl;
cout.unsetf(ios::scientific);
cout << 1.99999;
return 0;
}
Saída
1.999990e+00
1.99999
Para formatação básica para saída de dados , a linguagem C++ possui algumas funções nativas
que nos ajudam. O uso é feito de acordo com a sintaxe abaixo:
Sintaxe
cout << flag_formatacao << valor;
Onde
flag_formatação:flag utilizada para formatação.
flags mais comuns: left, right, fixed, showpos, boolalpha, nonboolalpha, dec, hex e oct.
Formatando inteiro, hexadecimal e octal
Para formatação de valores numéricos inteiros usamos as flags de formatação
dec,hex e oct para exibição de valores inteiros(base 10),
hexadecimais(base 16) e octais(base 8).
Sintaxe
cout << dec << valor;
cout << hex << valor;
cout << oct << valor;
Exemplo 7
#include <iostream>
using namespace std;
int main()
{
cout << dec << 1 << std::endl;
cout << oct << 10 << std::endl;
cout << hex << 10 << std::endl;
}
Saída
10
12
a
Formatando valores sinalizados
Para valores sinalizados, podemos usar a flag showpos para exibição do caractere
(+) antes de um valor.
Sintaxe
cout << showpos << valor << endl;
Exemplo 8
#include <iostream>
using namespace std;
int main()
{
cout << showpos << 10 << endl;
}
Saída
+10
Para formatação de valores booleanos, usamos as flags de formatação boolalpha e nonboolapha.
A primeira flag formata um valor para ser exibido como true ou false. A segunda
flag exibe um valor true ou false como 1 ou 0.
Sintaxe
cout << boolalpha << valor;
cout << nonboolalpha << valor;
Exemplo 9
#include <iostream>
using namespace std;
int main()
{
bool v = false;
cout << boolalpha << v << std::endl;
cout << noboolalpha << v << std::endl;
}
Saída
false
0
Justificando à esquerda ou direita
Para justificar valores à esquerda ou à direita, precisamos primeiro definir o tamanho do
campos que valor irá ocupar utilizando o método width.
Sintaxe
void cout.width(t);
Onde
t: tamanho do campo que onde um valor será exibido.
Após essa definição utilizando o método width utilizamos as flags left e right
para justificar um valor para exibição.
Sintaxe
cout << right << valor;
cout << left << valor;
Exemplo 10
#include <iostream>
using namespace std;
int main()
{
cout.width(8);
cout << right << 1.99 << endl;
cout.width(8);
cout << left << 100 << "<- justificado à esquerda";
}
Saída
1.99
100 <- justificado a esquerda
Para recuperarmos informações digitadas pelo usuário, utilizamos o comando cin que
aguarda até que o usuário digite algum valor e aperte enter. O valor capturado então
é atribuído à uma variável.
Sintaxe
cin >> variavel;
Exemplo 11
#include <iostream>
using namespace std;
int main()
{
string texto = "C/C++";
cout << "Nome Produto:\n";
string nome1;
cin >> nome1; //salva nome digitado
cout << "Preço:\n";
float preco;
cin >> preco; //salva preço digitado
cout<< "Produto:" << nome1 << " Preço:" << preco;
return 0;}
Entrada
Tenis
1.99
Saída
Nome Produto:
Tenis
Preço:
1.99
Produto:Tenis Preço:1.99
Em uma futura seção será estudado a leitura de entrada de dados formatada utilizando string. Até lá, vamos utilizar
apenas a forma básica de entrada de dados cin.
cin é um objeto da classe iostream definida pelo #include <iostream> que utilizamos
em vários exemplos. Essa classe possui algums métodos para a manipulação da entrada de dados.
Tab. 3: Métodos cin
Metodo |
Descrição |
get |
Lê um caracter. |
getline |
Lê uma sequencia de caracteres ou string. |
read |
Lê N bytes. |
ignore |
Ignora a N caracteres. |
eof |
Verifica end-of-file. |
fail |
- |
clear |
- |
gcount |
- |
rdbuf |
- |
peek |
- |
putback |
- |
Histórico de atualizações
- 28/07/2025 - revisão 3 - Ajustes em sintaxes; Correção pontuais
- 30/09/2024 - revisão 2 - Correção: método 'write', 'cin', Ajustes gramaticais pontuais e outros
- 09/02/2024 - revisão 1 - correção em navegação, exemplos e erros gramaticais
- 30/06/2023 - versão inicial
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.