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.