Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Entender o cout
  2. Entender o comando endl
  3. Métodos do cout
  4. Formatação básica
  5. Aprender a truncar casas decimais
  6. Entender o cin
  7. 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.

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.

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++

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.

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

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

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 -
  1. 28/07/2025 - revisão 3 - Ajustes em sintaxes; Correção pontuais
  2. 30/09/2024 - revisão 2 - Correção: método 'write', 'cin', Ajustes gramaticais pontuais e outros
  3. 09/02/2024 - revisão 1 - correção em navegação, exemplos e erros gramaticais
  4. 30/06/2023 - versão inicial