C ++ Basic Input / Output: Cout, Cin, Cerr Exemplo

Índice:

Anonim

O que são Streams em C ++?

C ++ fornece aos usuários uma série de bibliotecas que eles podem usar para realizar tarefas de entrada / saída. Essas tarefas são feitas na forma de sequências de bytes, popularmente chamadas de streams.

Os fluxos são divididos em dois:

Tipos de streams

  • Fluxo de entrada: este é um tipo de fluxo em que os bytes fluem de um dispositivo, como um teclado, para a memória principal.
  • Fluxo de saída: é um tipo de fluxo onde os bytes fluem na direção oposta, ou seja, da memória principal para o dispositivo como a tela do monitor.

Neste tutorial C ++, você aprenderá:

  • O que são Streams em C ++?
  • Como funcionam os streams?
  • Tabela de Função
  • Arquivos de cabeçalho C ++ para entrada / saída
  • std :: cout
  • std :: cin
  • std :: cerr
  • std :: entupir
  • Tratamento de erros com fluxos IO:

Como funcionam os streams?

Os streams C ++ funcionam da seguinte maneira:

  1. Primeiro, um fluxo é inicializado com o tipo certo.
  2. Em seguida, você deve indicar onde ocorrerá a E / S usando os ponteiros get / put.
  3. Depois de chegar ao local certo em um fluxo, você pode executar tarefas de entrada e saída usando os operadores >> e <<, respectivamente.

Tabela de Função

A seguir estão as funções fornecidas no arquivo de cabeçalho stream.h:

Aula Funções
Filebuf Ele define os buffers de arquivo para leitura / gravação. Possui funções close () e open ()
fstreambase É a classe base para as classes ifstream, fstream e ofstream. Suas operações são comuns aos fluxos de arquivos.
ifstream É uma classe de fluxo de arquivo de entrada para fornecer operações de entrada.
ofstream É uma classe de fluxo de arquivo de saída para fornecer operações de saída.
fstream É uma classe de fluxo de entrada / saída. Ele suporta operações de entrada / saída simultâneas.

Arquivos de cabeçalho C ++ para entrada / saída

C ++ fornece três bibliotecas que vêm com funções para realizar tarefas básicas de entrada / saída. Eles incluem:

  • Iostream: É um acrônimo para fluxo de entrada / saída padrão. Este arquivo de cabeçalho vem com definições para objetos como cin / cout / cerr.
  • Iomanip: É um acrônimo para manipuladores de entrada / saída. A biblioteca vem com funções que podem ser usadas para a manipulação de streams. Ele contém definições para objetos como setw, setprecision e outros.
  • Fstream: Este é um arquivo de cabeçalho para descrever o fluxo do arquivo. Ele lida com dados que são lidos do arquivo como entrada ou que são gravados em um arquivo, a saída.

As palavras-chave cin e cout são muito populares em C ++. Eles são usados ​​para obter entradas e saídas de impressão, respectivamente. Para usá-los, você deve incluir o arquivo de cabeçalho iostream em seu programa. A razão é que eles são definidos nesse arquivo de cabeçalho. A não inclusão do arquivo de cabeçalho iostream gerará um erro. Isso resulta de uma falha do compilador C ++ em entender o significado das palavras-chave.

Os principais objetos definidos no arquivo de cabeçalho iostream são cin, cout, cerr e clog. Vamos discuti-los.

std :: cout

O objeto cout é uma instância da classe iostream. É usado para produzir saída em um dispositivo de saída padrão, que normalmente é a tela. É usado junto com o operador de inserção de fluxo (<<).

Exemplo:

#include using namespace std;int main() {char welcome[] = "Welcome to Guru99";cout << welcome << endl;return 0;}

Resultado:

Aqui está uma captura de tela do código:

Explicação do código:

  1. Inclui o arquivo de cabeçalho iostream onde o objeto cout é definido.
  2. Inclua o namespace std para que não tenhamos que chamá-lo ao usar suas classes.
  3. Chame a função main (). O código do programa deve ser adicionado em seu corpo. A chave de abertura {marca o início de seu corpo.
  4. Crie uma variável de caractere chamada welcome para conter a string Welcome to Guru99.
  5. Imprima o valor da string welcome no console. O endl é uma palavra-chave C ++ que significa linha final. Ele move o cursor para começar a imprimir o texto na próxima linha.
  6. O programa deve retornar o valor após a execução bem-sucedida.
  7. Fim do corpo da função main ().

std :: cin

O objeto cin é uma instância da classe istream. Ele lê a entrada do dispositivo de entrada, o teclado. Normalmente é usado junto com o operador de extração (>>). O objeto de extração é responsável por extrair os dados inseridos por meio do teclado do objeto cin.

Exemplo:

O exemplo a seguir demonstra como usar a palavra-chave cin em C ++:

#include using namespace std;int main(){int number;cout << "Enter a number:";cin >> number;cout << "\nYou entered: " << number;return 0;}

Resultado:

Aqui está uma captura de tela do código:

Explicação do código:

  1. Inclua o arquivo de cabeçalho iostream em nosso programa. O objeto cin é definido neste arquivo de cabeçalho.
  2. Inclua o namespace std para usar suas classes. Você não terá que chamar std ao usar suas classes.
  3. Chame a função main (). O código do programa deve ser adicionado em seu corpo.
  4. O início do corpo do programa.
  5. Declare uma variável inteira chamada número.
  6. Imprima uma mensagem na tela solicitando que o usuário insira um número.
  7. Leia o valor inserido pelo usuário no console a partir do teclado.
  8. Imprima o valor lido acima no console junto com outro texto.
  9. O programa deve retornar um valor se for executado com êxito.
  10. Fim do corpo da função principal.

std :: cerr

O objeto cerr forma o fluxo de erro padrão para erros de saída em C ++. Cerr é uma instância da classe ostream. O objeto cerr não tem buffer. Isso significa que é usado quando uma mensagem de erro deve ser exibida imediatamente.

Uma vez que não tem buffer, não armazena mensagem de erro para uma exibição posterior. É usado junto com o operador de inserção de fluxo (<<).

Exemplo:

#include using namespace std;int main() {cerr << "An Error occurred!";return 0;}

Resultado:

Aqui está uma captura de tela do código:

Explicação do código:

  1. Inclui o arquivo de cabeçalho iostream onde o objeto cerr foi definido.
  2. Inclua o namespace std para que não tenhamos que chamá-lo ao usar suas classes.
  3. Chame a função main (). A lógica do programa deve ser adicionada em seu corpo. A chave de abertura marca o início do corpo da função.
  4. Use o objeto cerr para imprimir um erro no console.
  5. O programa deve retornar um valor após a execução bem-sucedida.
  6. Fim do corpo da função principal.

std :: entupir

O objeto clog é uma instância da classe ostream. É usado para mostrar erros na tela padrão, o monitor. É semelhante ao objeto cerr, mas é armazenado em buffer. Como está em buffer, ele armazena a mensagem de erro no buffer até que o buffer seja preenchido / liberado. É usado junto com o operador de inserção de fluxo (<<).

Exemplo:

#include using namespace std;int main() {clog << "An Error occurred!";return 0;}

Resultado:

Aqui está uma captura de tela do código:

Explicação do código:

  1. Incluindo o arquivo de cabeçalho iostream no qual o objeto de obstrução é definido.
  2. Incluindo o namespace std para que possamos usar suas classes sem chamá-lo.
  3. Chamando a função main (). A lógica do programa deve ser adicionada em seu corpo. O {marca o início do corpo da função.
  4. Use o objeto de obstrução para imprimir um erro na saída padrão, o monitor.
  5. O programa deve retornar um valor após a conclusão bem-sucedida.
  6. O fim do corpo da função main ().

Tratamento de erros com fluxos IO:

Para verificar se um fluxo é válido ou não, você pode usá-lo como um booleano.

Aqui está um exemplo:

ifstream file( "myfile.txt" );if ( ! file ){cout << "File NOT opened!" << endl;}

Para obter mais detalhes sobre o status do stream, você pode usar estas funções:

  • good () - retornará true se tudo estiver bem.
  • bad () - retornará verdadeiro se ocorrer um erro fatal.
  • fail () - retornará true após operação de stream malsucedida.
  • eof () - retornará verdadeiro se chegar ao final de um arquivo.

Para saber se uma determinada operação de leitura / gravação falhou, teste o resultado da leitura.

Por exemplo, para verificar se o usuário inseriu um número inteiro válido, faça o seguinte:

int p;if ( cin >> p ){cout << "Enter valid number" << endl;}

Resumo

  • As tarefas de entrada e saída em C ++ são feitas via sequência de bytes. Os bytes são chamados de streams.
  • Em um fluxo de entrada, os bytes fluem do dispositivo de entrada como um teclado para a memória principal.
  • Em um fluxo de saída, os bytes da memória principal são enviados para um dispositivo de saída como um monitor.
  • O objeto cin é uma instância da classe istream. Ele lê a entrada de um dispositivo de entrada como o teclado.
  • O objeto cout é uma instância da classe ostream. Ele produz saída em dispositivos de saída como o monitor.
  • O objeto cerr é uma instância da classe ostream. Ele exibe objetos de erro no monitor.
  • O objeto clog é uma instância da classe ostream. Ele exibe mensagens de erro nos dispositivos de saída.
  • O objeto clog armazena mensagens de erro, enquanto o objeto cerr não.