C++ vem com bibliotecas que nos fornecem muitas maneiras de realizar entrada e saída. Em C++, a entrada e a saída são realizadas na forma de uma sequência de bytes ou mais comumente conhecida como fluxos .

  • Fluxo de entrada: se a direção do fluxo de bytes for do dispositivo (por exemplo, teclado) para a memória principal, esse processo é chamado de entrada.
  • Fluxo de saída: Se a direção do fluxo de bytes for oposta, ou seja, da memória principal para o dispositivo (tela de exibição), esse processo é chamado de saída.

Os arquivos de cabeçalho disponíveis em C++ para operações de entrada / saída são: 

  1. iostream : iostream significa fluxo de entrada-saída padrão. Este arquivo de cabeçalho contém definições para objetos como cin, cout, cerr etc.
  2. iomanip : iomanip significa manipuladores de entrada e saída. Os métodos declarados nestes arquivos são usados ​​para manipular fluxos. Este arquivo contém definições de setw, setprecision, etc.
  3. fstream : Este arquivo de cabeçalho descreve principalmente o fluxo do arquivo. Este arquivo de cabeçalho é usado para lidar com os dados lidos de um arquivo como entrada ou os dados sendo gravados no arquivo como saída.

As duas palavras-chave cout em C++ e cin em C++  são usadas com frequência para imprimir saídas e receber entradas, respectivamente. Esses dois são os métodos mais básicos de entrada e saída de impressão em C++. Para usar cin e cout em C++, é necessário incluir o arquivo de cabeçalho iostream no programa.

Este artigo discute principalmente os objetos definidos no arquivo de cabeçalho iostream, como cin e cout.  

  • Fluxo de saída padrão (cout) : Normalmente, o dispositivo de saída padrão é a tela de exibição. A instrução C++ cout é a instância da classe ostream. É usado para produzir saída no dispositivo de saída padrão, que geralmente é a tela de exibição. Os dados necessários para serem exibidos na tela são inseridos no fluxo de saída padrão (cout) usando o operador de inserção ( << ).
#include <iostream>
 
using namespace std;
 
int main()
{
    char sample[] = "GeeksforGeeks";
 
    cout << sample << " - A computer science portal for geeks";
 
    return 0;
}

Saída: 

GeeksforGeeks - A computer science portal for geeks

No programa acima, o operador de inserção ( << ) insere o valor da variável de string sample seguido pela string “Um portal de ciência da computação para geeks” no fluxo de saída padrão cout que é então exibido na tela.

  • fluxo de entrada padrão (cin) : Normalmente, o dispositivo de entrada em um computador é o teclado. A instrução C++ cin é a instância da classe istream e é usada para ler a entrada do dispositivo de entrada padrão que geralmente é um teclado. 
    O operador de extração ( >> ) é usado junto com o objeto cin para ler as entradas. O operador de extração extrai os dados do objeto cin que é inserido usando o teclado.
#include <iostream>
using namespace std;
 
int main()
{
    int age;
 
    cout << "Enter your age:";
    cin >> age;
    cout << "\nYour age is: " << age;
 
    return 0;
}

Entrada : 

18

Saída: 

Enter your age:
Your age is: 18

O programa acima pede ao usuário para inserir a idade. O objeto cin está conectado ao dispositivo de entrada. A idade inserida pelo usuário é extraída de cin usando o operador de extração ( >> ) e os dados extraídos são então armazenados na variável idade presente no lado direito do operador de extração.

  • Fluxo de erro padrão sem buffer (cerr) : O cerr C++ é o fluxo de erro padrão usado para gerar os erros. Esta também é uma instância da classe ostream. Como cerr em C++ não é armazenado em buffer, ele é usado quando é necessário exibir a mensagem de erro imediatamente. Ele não tem nenhum buffer para armazenar a mensagem de erro e exibi-la posteriormente.
  • A principal diferença entre cerr e cout vem quando você gostaria de redirecionar a saída usando “cout” que é redirecionado para o arquivo se você usar “cerr” o erro não é armazenado no arquivo. (Isso é o que significa un-buffered .. Não pode armazenar a mensagem)
#include <iostream>
 
using namespace std;
 
int main()
{
    cerr << "An error occured";
    return 0;
}

Saída: 

An error occured
  • buffered standard error stream (clog) : Esta também é uma instância da classe ostream e usada para exibir erros, mas ao contrário de cerr, o erro é primeiro inserido em um buffer e armazenado no buffer até que não seja totalmente preenchido. ou o buffer não é liberado explicitamente (usando flush()). A mensagem de erro também será exibida na tela.
#include <iostream>
 
using namespace std;
 
int main()
{
    clog << "An error occured";
 
    return 0;
}

Saída: 

An error occured

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="374" src="https://www.youtube.com/embed/I16GqVWJXKE?feature=oembed" width="665"></iframe>

? list = PLqM7alHXFySGg6GSRmE2INI4k8fPH5qVB 
  Artigos relacionados :  

Este artigo é uma contribuição de Harsh Agarwal . Se você gosta de GeeksforGeeks e gostaria de contribuir, você também pode escrever um artigo usando write.geeksforgeeks.org ou enviar seu artigo para review-team@geeksforgeeks.org. Veja o seu artigo na página principal do GeeksforGeeks e ajude outros Geeks.
Escreva comentários se encontrar algo incorreto ou se quiser compartilhar mais informações sobre o tópico discutido acima. 

Quer aprender com os melhores vídeos com curadoria e problemas práticos, confira o C++ Foundation Course for Basic to Advanced C++ e C++ STL Course for Foundation plus STL. Para completar sua preparação desde o aprendizado de um idioma até o DS Algo e muitos mais, consulte o Curso Completo de Preparação para Entrevistas .