Entrada/saída básica de C++:Cout, Cin, Cerr Exemplo
O que são fluxos em C++?
C++ fornece aos usuários várias bibliotecas que eles podem usar para executar 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 onde os bytes fluem de um dispositivo como um teclado para a memória principal.
- Fluxo de saída: Este é um tipo de fluxo onde os bytes fluem na direção oposta, ou seja, da memória principal e depois para o dispositivo como a tela de exibição.
Neste tutorial de C++ você aprenderá:
- O que são fluxos em C++?
- Como funcionam as transmissões?
- Tabela de funções
- Arquivos de cabeçalho C++ para entrada/saída
- std::cout
- std::cin
- std::cerr
- std::clog
- Tratamento de erros com fluxos de E/S:
Como funcionam as transmissões?
Os fluxos C++ funcionam da seguinte forma:
- Primeiro, um stream é inicializado com o tipo correto.
- Em seguida, você deve indicar onde a E/S ocorrerá usando os ponteiros get/put.
- 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ções
A seguir estão as funções fornecidas no arquivo de cabeçalho stream.h:
Arquivos de cabeçalho C++ para entrada/saída
C++ fornece três bibliotecas que vêm com funções para executar 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 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 de arquivos. 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 em conjunto com o operador de inserção de fluxo (<<).
Exemplo:
#include <iostream> using namespace std; int main() { char welcome[] = "Welcome to Guru99"; cout << welcome << endl; return 0; }
Saída:
Aqui está uma captura de tela do código:
Explicação do código:
- Inclua o arquivo de cabeçalho iostream onde o objeto cout está definido.
- Inclua o namespace std para que não precisemos chamá-lo ao usar suas classes.
- Chame a função main(). O código do programa deve ser adicionado dentro de seu corpo. A chave de abertura { marca o início de seu corpo.
- Crie uma variável de caractere chamada welcome para conter a string Welcome to Guru99.
- Imprima o valor da string welcome no console. O endl é uma palavra-chave C++ que significa linha final. Move o cursor para começar a imprimir o texto na próxima linha.
- O programa deve retornar valor após a execução bem-sucedida.
- 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 em conjunto com o operador de extração (>>). O objeto de extração é responsável por extrair os dados inseridos através do teclado do objeto cin.
Exemplo:
O exemplo a seguir demonstra como usar a palavra-chave cin em C++:
#include <iostream> using namespace std; int main() { int number; cout << "Enter a number:"; cin >> number; cout << "\nYou entered: " << number; return 0; }
Saída:
Aqui está uma captura de tela do código:
Explicação do código:
- Inclua o arquivo de cabeçalho iostream em nosso programa. O objeto cin é definido neste arquivo de cabeçalho.
- Inclua o namespace std para usar suas classes. Você não precisará chamar std ao usar suas classes.
- Chame a função main(). O código do programa deve ser adicionado dentro de seu corpo.
- O início do corpo do programa.
- Declare uma variável inteira chamada number.
- Imprima uma mensagem na tela solicitando que o usuário insira um número.
- Leia o valor inserido pelo usuário no console a partir do teclado.
- Imprima o valor lido acima no console junto com outro texto.
- O programa deve retornar um valor se for executado com sucesso.
- Fim do corpo da função principal.
std::cerr
O objeto cerr forma o fluxo de erro padrão para gerar erros em C++. Cerr é uma instância da classe ostream. O objeto cerr está sem buffer. Isso significa que é usado quando uma mensagem de erro deve ser exibida imediatamente.
Como não tem buffer, ele não armazena mensagens de erro para uma exibição posterior. É usado em conjunto com o operador de inserção de fluxo (<<).
Exemplo:
#include <iostream> using namespace std; int main() { cerr << "An Error occurred!"; return 0; }
Saída:
Aqui está uma captura de tela do código:
Explicação do código:
- Inclua o arquivo de cabeçalho iostream onde o objeto cerr foi definido.
- Inclua o namespace std para que não precisemos chamá-lo ao usar suas classes.
- Chame a função main(). A lógica do programa deve ser adicionada ao seu corpo. A chave de abertura marca o início do corpo da função.
- Use o objeto cerr para imprimir um erro no console.
- O programa deve retornar um valor após a execução bem-sucedida.
- Fim do corpo da função principal.
std::clog
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á armazenado em buffer, ele armazena a mensagem de erro no buffer até que o buffer seja preenchido/liberado. É usado em conjunto com o operador de inserção de fluxo (<<).
Exemplo:
#include <iostream> using namespace std; int main() { clog << "An Error occurred!"; return 0; }
Saída:
Aqui está uma captura de tela do código:
Explicação do código:
- Incluindo o arquivo de cabeçalho iostream no qual o objeto clog está definido.
- Incluindo o namespace std para que possamos usar suas classes sem chamá-lo.
- Chamando a função main(). A lógica do programa deve ser adicionada ao seu corpo. O { marca o início do corpo da função.
- Use o objeto clog para imprimir um erro na saída padrão, o monitor.
- O programa deve retornar um valor após a conclusão bem-sucedida.
- O final do corpo da função main().
Tratamento de erros com fluxos de E/S:
Para verificar se um fluxo é válido ou não, você pode usá-lo como 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á true se ocorrer um erro fatal.
- fail()- retornará true após uma operação de fluxo malsucedida.
- eof()- retornará true se atingir o 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 digitou 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 fluxos.
- 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 em buffer, enquanto o objeto cerr não.
Linguagem C
- Entrada e saída básica em C#
- Entrada/saída básica de C++
- C Entrada Saída (E/S)
- Entrada e Saída Java Basic
- Instrução C++ Switch Case com EXEMPLO
- Manipulação de Exceções C++:Try, Catch, Throw Exemplo
- Alocação dinâmica de matrizes em C++ com exemplo
- Estrutura C++ com exemplo
- D Trava
- C - Entrada e Saída