Mandar um cafézinho para o programador:


Me ajude a transformar café em código!

Saída simples em C++: cout, <<, endl, \n e Outros caracteres especiais

No tutorial anterior, aprendemos a criar o primeiro programa em C++, famoso Hello, world! ou Olá, mundo!.

Para tal, usamos um comando bem especial: o cout.
Vamos aprofundar nossos estudos neste assunto.

Saída simples (imprimindo coisas na tela):
cout e <<

O que fizemos no primeiro programa em C++ foi, simplesmente, escrever uma mensagem na tela.
Dizemos que imprimimos algo no console (telinha preta de comandos), ou mais especificamente, fizemos uma saída do C++ para a tela.

Especificamente o cout é um treco chamado objeto. Especificamente, um objeto da classe ostream.
Não se preocupe, por hora, com esses termos. Vamos esmiuçar ele em nossos tutoriais de orientação a objetos em C++.

Esse comando é standard output stream, ou seja, é a saída padrão de informação. Ou seja, através do cout conseguimos enviar informações para a saída padrão, que é o terminal de comando, a janelinha preta que aparece na sua frente, quando rodamos o programa.

Vamos agora exibir a mensagem: "Bem vindos ao curso C++ Progressivo":
#include <iostream>
using namespace std;

int main()
{
    cout << "Bem vindos ao curso C++ Progressivo";
    return 0;
}
Rode esse programa e veja o resultado.

Já o operador << sinaliza que estamos enviando informação (no caso, o texto) para o comando cout:
cout << algo (algo está sendo enviado para a saída padrão).

Podemos reescrever o programa da seguinte maneira:
#include <iostream>
using namespace std;

int main()
{
    cout << "Bem vindos ao curso "<<"C++ Progressivo";
    return 0;
}
Bacana, né?
Vamos agora escrever na tela:
Imprimir coisas na tela com C++
Basta usarmos o comando cout duas vezes, concorda? Veja:
#include <iostream>
using namespace std;

int main()
{
    cout << "Bem vindos ao curso";
    cout << "C++ Progressivo";
    return 0;
}
Não se esqueça do ponto e vírgula ao término de cada comando. Isso é universal em C++.
O resultado fica:
cout em C++

Opa! Peraí! Ficou tudo grudado, qual foi o problema?

Quebra de linha: endl e \n

Uma string, que é o mesmo que um texto, é nada mais que uma sequência de caracteres.
Após a primeira frase, "Bem vindos ao curso" existe um caractere, embora não possamos ver.

É a quebra de linha, é o mesmo que ocorre quando você dá um enter em um texto, ele pula, quebra pra próxima linha.

Podemos resolver isso usando o comando endl (end line), que é um manipulador de stream, veja:
#include <iostream>
using namespace std;

int main()
{
    cout << "Bem vindos ao curso " << endl;
    cout <<"C++ Progressivo";
    return 0;
}

Uma outra maneira de quebra a linha, é usando o caractere \n.
No caso, ele vai dentro da string, ou seja, como se fosse um caractere de texto mesmo:
#include <iostream>
using namespace std;

int main()
{
    cout << "Bem vindos ao curso\n";
    cout <<"C++ Progressivo";
    return 0;
}
Veja que podemos inclusive fazer isso usando apenas um comando cout:
#include <iostream>
using namespace std;

int main()
{
    cout << "Bem vindos ao curso\nC++ Progressivo";
    return 0;
}

O caractere '\n' ocupa 1 byte de memória na execução do programa. Já o endl chama uma função do sistema, para fazer o mesmo efeito do \n.

Caracteres especiais em C++

\n é chamado de caractere especial. Vejamos alguns outros:

  • \t - tem o mesmo efeito do TAB num editor de texto
  • \r - Carriage return: posicione o cursor da tela no início da linha atual, não avança para a próxima linha.
  • \a - Alert, em máquinas antigas produzia um som (um bipe)
  • \\ - Usado pra printar o caractere \
  • \' - Usado para printar o caractere ' (aspas simples)
  • \" - Usado para printar o caractere "" (aspas duplas)


Fontes de estudo e consulta

http://www.cplusplus.com/reference/iostream/cout/
http://www.cplusplus.com/reference/ostream/endl/

7 comentários:

  1. obrigado pelo conteudo incrivel
    mas tem um problema no meu computador nao tem a tecla / ao contrario sabe aquele caractere especial usado para "quebrar a linha" entao eu acho mais facil usar aquele (barra n)
    pfv me ensine como eu faco para usa-lo

    ResponderExcluir
  2. Muito obrigado pelo conteúdo.
    Estou começando na área agradeço a ajuda.

    ResponderExcluir
  3. using namespace std;

    o que seria isso? Meus programas estão rodando sem utilizar isso, não é uma função obrigatória ?

    ResponderExcluir
    Respostas
    1. se usar "std::" antes de "cout" não precisa de usar esse comando. Esse comando funciona para que não seja preciso escrever "std::" antes de "cout".

      Excluir
  4. https://medium.com/breaktheloop/why-using-namespace-std-is-used-after-including-iostream-dc5ae45db652#:~:text=%E2%80%9Cusing%20namespace%20std%E2%80%9D%20means%20we,in%20this%20namespace%20like%20this.

    ResponderExcluir

Ajude o C++ Progressivo

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo