Input / output di base C ++: Cout, Cin, Cerr Example

Sommario:

Anonim

Cosa sono gli stream in C ++?

C ++ fornisce agli utenti una serie di librerie che possono utilizzare per eseguire attività di input / output. Queste attività vengono eseguite sotto forma di sequenze di byte, comunemente chiamate flussi.

I flussi sono divisi in due:

Tipi di flussi

  • Flusso di input: questo è un tipo di flusso in cui i byte fluiscono da un dispositivo come una tastiera alla memoria principale.
  • Stream di output: questo è un tipo di flusso in cui i byte scorrono nella direzione opposta, cioè dalla memoria principale quindi al dispositivo come lo schermo di visualizzazione.

In questo tutorial C ++ imparerai:

  • Cosa sono gli stream in C ++?
  • Come funzionano gli stream?
  • Tabella delle funzioni
  • File di intestazione C ++ per input / output
  • std :: cout
  • std :: cin
  • std :: cerr
  • std :: clog
  • Gestione degli errori con i flussi di I / O:

Come funzionano gli stream?

I flussi C ++ funzionano come segue:

  1. Innanzitutto, un flusso viene inizializzato con il tipo corretto.
  2. Successivamente, è necessario indicare dove avverrà l'I / O utilizzando i puntatori get / put.
  3. Dopo aver raggiunto la posizione corretta in un flusso, è possibile eseguire attività di input e output utilizzando rispettivamente gli operatori >> e <<.

Tabella delle funzioni

Le seguenti sono le funzioni fornite nel file di intestazione stream.h:

Classe Funzioni
Filebuf Imposta i buffer di file in lettura / scrittura. Ha le funzioni close () e open () al suo interno
fstreambase È la classe base per le classi ifstream, fstream e ofstream. Le sue operazioni sono comuni ai flussi di file.
ifstream È una classe di flusso di file di input per fornire operazioni di input.
ofstream È una classe di flusso di file di output per fornire operazioni di output.
fstream È una classe di flusso di input / output. Supporta operazioni di input / output simultanee.

File di intestazione C ++ per input / output

C ++ fornisce tre librerie dotate di funzioni per eseguire attività di input / output di base. Loro includono:

  • Iostream: è un acronimo per flusso di input / output standard. Questo file di intestazione viene fornito con le definizioni per oggetti come cin / cout / cerr.
  • Iomanip: è un acronimo per manipolatori di input / output. La libreria è dotata di funzioni che possono essere utilizzate per la manipolazione dei flussi. Contiene definizioni per oggetti come setw, setprecision e altri.
  • Fstream: questo è un file di intestazione per descrivere il flusso di file. Gestisce i dati che vengono letti dal file come input o che vengono scritti in un file, l'output.

Le parole chiave cin e cout sono molto popolari in C ++. Sono usati rispettivamente per prendere input e stampare output. Per utilizzarli, è necessario includere il file di intestazione iostream nel programma. Il motivo è che sono definiti in quel file di intestazione. La mancata inclusione del file di intestazione iostream genererà un errore. Ciò risulta da un errore del compilatore C ++ nel comprendere il significato delle parole chiave.

Gli oggetti principali definiti nel file di intestazione iostream sono cin, cout, cerr e clog. Parliamone.

std :: cout

L'oggetto cout è un'istanza della classe iostream. Viene utilizzato per produrre output su un dispositivo di output standard, che normalmente è lo schermo. Viene utilizzato insieme all'operatore di inserimento del flusso (<<).

Esempio:

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

Produzione:

Ecco uno screenshot del codice:

Spiegazione del codice:

  1. Includere il file di intestazione iostream in cui è definito l'oggetto cout.
  2. Includere lo spazio dei nomi std in modo da non doverlo chiamare quando si usano le sue classi.
  3. Chiama la funzione main (). Il codice del programma dovrebbe essere aggiunto all'interno del suo corpo. La parentesi graffa di apertura {segna l'inizio del suo corpo.
  4. Crea una variabile di carattere denominata benvenuto per contenere la stringa Benvenuto in Guru99.
  5. Stampa il valore della stringa di benvenuto sulla console. Endl è una parola chiave C ++ che significa end line. Sposta il cursore per iniziare a stampare il testo sulla riga successiva.
  6. Il programma deve restituire un valore in caso di corretta esecuzione.
  7. Fine del corpo della funzione main ().

std :: cin

L'oggetto cin è un'istanza della classe istream. Legge l'input dal dispositivo di input, la tastiera. Viene normalmente utilizzato insieme all'operatore di estrazione (>>). L'oggetto di estrazione è responsabile dell'estrazione dei dati inseriti tramite la tastiera dall'oggetto cin.

Esempio:

L'esempio seguente mostra come utilizzare la parola chiave cin in C ++:

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

Produzione:

Ecco uno screenshot del codice:

Spiegazione del codice:

  1. Includere il file di intestazione iostream nel nostro programma. L'oggetto cin è definito in questo file di intestazione.
  2. Includere lo spazio dei nomi std per utilizzare le sue classi. Non dovrai chiamare std quando usi le sue classi.
  3. Chiama la funzione main (). Il codice del programma dovrebbe essere aggiunto all'interno del suo corpo.
  4. L'inizio del corpo del programma.
  5. Dichiarare una variabile intera denominata numero.
  6. Stampa un messaggio sullo schermo che richiede all'utente di inserire un numero.
  7. Leggere il valore inserito dall'utente sulla console dalla tastiera.
  8. Stampa il valore letto sopra sulla console insieme ad altro testo.
  9. Il programma dovrebbe restituire un valore se viene eseguito correttamente.
  10. Fine del corpo della funzione principale.

std :: cerr

L'oggetto cerr forma il flusso di errore standard per l'emissione di errori in C ++. Cerr è un'istanza della classe ostream. L'oggetto cerr è senza buffer. Ciò significa che viene utilizzato quando un messaggio di errore deve essere visualizzato immediatamente.

Poiché è senza buffer, non memorizza il messaggio di errore per una visualizzazione successiva. Viene utilizzato insieme all'operatore di inserimento del flusso (<<).

Esempio:

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

Produzione:

Ecco uno screenshot del codice:

Spiegazione del codice:

  1. Includere il file di intestazione iostream in cui è stato definito l'oggetto cerr.
  2. Includere lo spazio dei nomi std in modo da non doverlo chiamare quando si usano le sue classi.
  3. Chiama la funzione main (). La logica del programma dovrebbe essere aggiunta all'interno del suo corpo. La parentesi graffa di apertura segna l'inizio del corpo della funzione.
  4. Usa l'oggetto cerr per stampare un errore sulla console.
  5. Il programma deve restituire un valore in caso di corretta esecuzione.
  6. Fine del corpo della funzione principale.

std :: clog

L'oggetto clog è un'istanza della classe ostream. Viene utilizzato per mostrare gli errori sul display standard, il monitor. È simile all'oggetto cerr, ma è bufferizzato. Poiché è bufferizzato, memorizza il messaggio di errore nel buffer finché il buffer non viene riempito / scaricato. Viene utilizzato insieme all'operatore di inserimento del flusso (<<).

Esempio:

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

Produzione:

Ecco uno screenshot del codice:

Spiegazione del codice:

  1. Compreso il file di intestazione iostream in cui è definito l'oggetto clog.
  2. Compreso lo spazio dei nomi std in modo che possiamo usare le sue classi senza chiamarlo.
  3. Chiamare la funzione main (). La logica del programma dovrebbe essere aggiunta all'interno del suo corpo. La {segna l'inizio del corpo della funzione.
  4. Utilizzare l'oggetto clog per stampare un errore sullo standard output, il monitor.
  5. Il programma deve restituire un valore dopo il completamento con successo.
  6. La fine del corpo della funzione main ().

Gestione degli errori con i flussi di I / O:

Per verificare se uno stream è valido o meno, puoi usarlo come booleano.

Ecco un esempio:

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

Per ottenere maggiori dettagli sullo stato del flusso, puoi utilizzare queste funzioni:

  • good () - restituirà true se tutto va bene.
  • bad () - restituirà true se si verifica un errore fatale.
  • fail () - restituirà true dopo un'operazione di flusso non riuscita.
  • eof () - restituirà true se raggiunge la fine di un file.

Per sapere se una particolare operazione di lettura / scrittura non è riuscita, testare il risultato della lettura.

Ad esempio, per verificare se l'utente ha immesso un numero intero valido, eseguire questa operazione:

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

Sommario

  • Le attività di input e output in C ++ vengono eseguite tramite sequenza di byte. I byte sono chiamati flussi.
  • In un flusso di input, i byte fluiscono dal dispositivo di input come una tastiera alla memoria principale.
  • In un flusso di output, i byte dalla memoria principale quindi a un dispositivo di output come un monitor.
  • L'oggetto cin è un'istanza della classe istream. Legge l'input da un dispositivo di input come la tastiera.
  • L'oggetto cout è un'istanza della classe ostream. Produce output su dispositivi di output come il monitor.
  • L'oggetto cerr è un'istanza della classe ostream. Visualizza gli oggetti di errore sul monitor.
  • L'oggetto clog è un'istanza della classe ostream. Visualizza i messaggi di errore sui dispositivi di output.
  • L'oggetto clog memorizza i messaggi di errore, mentre l'oggetto cerr no.