Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Dominando Streams em C++: cout, cin, cerr, clog – Guia Prático

O que São Streams em C++?

O C++ abstrai entrada e saída através de uma família de classes de stream que transferem dados como sequências de bytes. Esses streams são a espinha dorsal de toda operação de I/O na linguagem.

Streams dividem-se em duas categorias:

Tipos de Streams

Este tutorial cobrirá:

Como Streams Funcionam

O fluxo típico de uma operação de stream C++ é:

  1. Instancie um objeto stream do tipo apropriado.
  2. Associe o stream a um dispositivo ou arquivo usando ponteiros get/put.
  3. Realize I/O via operadores de extração (>>) ou inserção (<<).

Visão Geral das Funções de Stream

O cabeçalho streambuf fornece várias classes que gerenciam buffers de arquivo:

ClasseDescrição
filebufGerencia buffers de arquivo para leitura/escrita. Fornece open() e close().
fstreambaseBase para ifstream, fstream e ofstream – operações comuns de file stream.
ifstreamInput file stream para leitura de dados.
ofstreamOutput file stream para escrita de dados.
fstreamStream combinado de entrada/saída.

Arquivos de Cabeçalho C++ para I/O

Todos esses objetos são definidos em iostream; omitir o cabeçalho dispara erro de compilação.

std::cout

O objeto cout escreve no stream de saída padrão, geralmente o console. É usado com o operador de inserção (<<).

Exemplo

#include <iostream>
using namespace std;
int main() {
    char boas_vindas[] = "Bem-vindo ao Guru99";
    cout << boas_vindas << endl;
    return 0;
}

Análise do Código:

  1. Inclui iostream para acessar cout.
  2. Usa namespace std para evitar prefixos.
  3. Define array de caracteres contendo a mensagem.
  4. Imprime a mensagem com endl para inserir nova linha.
  5. Retorna 0 para indicar sucesso.

std::cin

O objeto cin lê do stream de entrada padrão, tipicamente o teclado. Ele combina com o operador de extração (>>).

Exemplo

#include <iostream>
using namespace std;
int main() {
    int numero;
    cout << "Digite um número: ";
    cin >> numero;
    cout << "\nVocê digitou: " << numero;
    return 0;
}

Análise do Código:

  1. Inclui iostream para cin e cout.
  2. Usa namespace std.
  3. Declara variável inteira.
  4. Solicita ao usuário.
  5. Lê entrada com >>.
  6. Repete o valor inserido.
  7. Retorna 0 em sucesso.

std::cerr

O stream cerr imprime mensagens de erro imediatamente porque não é bufferizado. Use-o para erros críticos que devem ser mostrados de imediato.

Exemplo

#include <iostream>
using namespace std;
int main() {
    cerr << "Ocorreu um erro!";
    return 0;
}

std::clog

Diferente de cerr, clog é bufferizado, armazenando mensagens até o buffer ser descarregado. É útil para logging que pode ser atrasado.

Exemplo

#include <iostream>
using namespace std;
int main() {
    clog << "Ocorreu um erro!";
    return 0;
}

Tratamento de Erros com Objetos Stream

Streams podem ser avaliados em contexto booleano para verificar sua validade. Além disso, funções membro fornecem verificações de status granulares:

Exemplo – verificando abertura de arquivo:

ifstream arquivo("meuarquivo.txt");
if (!arquivo) {
    cout << "Arquivo NÃO aberto!" << endl;
}

Exemplo – validando entrada do usuário:

int p;
if (cin >> p) {
    cout << "Número válido inserido" << endl;
}

Resumo

Linguagem C

  1. Fundamentos de C#: Essenciais de Entrada e Saída
  2. Dominando Entrada e Saída em C++: Guia Prático
  3. Dominando Entrada e Saída (I/O) em C: scanf() e printf() Explicados
  4. Dominando Entrada e Saída em Java: Imprimir, Ler e Formatados Seus Dados
  5. Dominando Switch-Case em C++: Sintaxe, Uso e Exemplos Práticos
  6. Dominando Tratamento de Exceções em C++: Exemplos Práticos com Try, Catch, Throw
  7. Dominando Alocação Dinâmica de Arrays em C++: Guia Prático com Exemplos de Código
  8. Structs em C++ Explicadas com Exemplo Prático
  9. Dominando Latches D: Projeto, Operação e Diferenças Principais
  10. Dominando Entrada e Saída em Programação C