C++ Entrada/Saída Básica: Exemplo Cout, Cin, Cerr
Em que estão os fluxos C++?
C++ fornece aos usuários uma série de bibliotecas que eles podem usar para executar tarefas de entrada/saída. Essas tarefas são realizadas na forma de sequências de bytes, popularmente chamadas de streams.
Os fluxos são divididos em dois:
Tipos de fluxos
- 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: 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 do display.
Como funcionam os fluxos?
C++ fluxos funcionam da seguinte maneira:
- Primeiro, um fluxo é inicializado com o tipo correto.
- A seguir, você deve indicar onde I / O ocorrerá usando 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ção
A seguir estão as funções fornecidas no arquivo de cabeçalho stream.h:
Aula | Funções |
---|---|
Arquivobuf | Ele define 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. |
de corrente | É uma classe de fluxo de arquivo de saída para fornecer operações de saída. |
stream | É uma classe de fluxo de entrada/saída. Suporta operações simultâneas de entrada/saída. |
C++ Arquivos de cabeçalho 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 utilizadas 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 de arquivos. Ele lida com dados que são lidos do arquivo como entrada ou gravados em um arquivo, a saída.
As palavras-chave cin e cout são muito populares em C++. Eles são usados para receber entradas e imprimir saídas, respectivamente. Para usá-los, você deve incluir o arquivo de cabeçalho iostream em seu programa. A razão é que eles estão definidos nesse arquivo de cabeçalho. A não inclusão do arquivo de cabeçalho iostream gerará um erro. Isto resulta de uma falha do C++ compilador para 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 stream (<<).
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 tenhamos que chamá-lo ao usar suas classes.
- Chame a função main(). O código do programa deve ser adicionado ao seu corpo. A chave de abertura {marca o início de seu corpo.
- Crie uma variável de caractere chamada bem-vindo para conter a string Bem-vindo ao Guru99.
- Imprima o valor da string bem-vindo no console. O final é um C++ palavra-chave que significa linha final. Move o cursor para começar a imprimir o texto na próxima linha.
- O programa deve retornar um 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 junto com o operador de extração (>>). O objeto de extração é responsável por extrair os dados inseridos pelo 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 ao seu corpo.
- O início do corpo do programa.
- Declare um variável inteira número nomeado.
- 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 erros padrão para gerar erros em C++. Cerr é uma instância da classe ostream. O objeto cerr não tem buffer. Isso significa que ele é usado quando uma mensagem de erro deve ser exibida imediatamente.
Como não tem buffer, ele não armazena mensagens de erro para exibição posterior. É usado junto com o operador de inserção de stream (<<).
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:
- Inclui o arquivo de cabeçalho iostream onde o objeto cerr foi definido.
- Inclua o namespace std para que não tenhamos que 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::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/limpo. É usado junto com o operador de inserção de stream (<<).
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 é 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 IO
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á verdadeiro se tudo estiver bem.
- bad()- retornará verdadeiro se ocorrer um erro fatal.
- fail() - retornará verdadeiro após operação de fluxo 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 feitos 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. 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.