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

Inhaltsverzeichnis:

Anonim

Was sind Streams in C ++?

C ++ bietet Benutzern eine Reihe von Bibliotheken, mit denen sie Eingabe- / Ausgabeaufgaben ausführen können. Diese Aufgaben werden in Form von Byte-Sequenzen ausgeführt, die im Volksmund als Streams bezeichnet werden.

Die Streams sind zweigeteilt:

Arten von Streams

  • Eingabestream: Dies ist eine Art Stream, bei dem die Bytes von einem Gerät wie einer Tastatur zum Hauptspeicher fließen.
  • Ausgabestream: Dies ist eine Art Stream, bei dem die Bytes in die entgegengesetzte Richtung fließen, dh vom Hauptspeicher zum Gerät, z. B. zum Bildschirm.

In diesem C ++ - Tutorial lernen Sie:

  • Was sind Streams in C ++?
  • Wie funktionieren Streams?
  • Funktionstabelle
  • C ++ - Headerdateien für Eingabe / Ausgabe
  • std :: cout
  • std :: cin
  • std :: cerr
  • std :: clog
  • Fehlerbehandlung mit E / A-Streams:

Wie funktionieren Streams?

C ++ - Streams funktionieren wie folgt:

  1. Zunächst wird ein Stream mit dem richtigen Typ initialisiert.
  2. Als Nächstes sollten Sie mithilfe von get / put-Zeigern angeben, wo die E / A stattfinden soll.
  3. Nachdem Sie an der richtigen Stelle in einem Stream angekommen sind, können Sie Eingabe- und Ausgabeaufgaben mit den Operatoren >> bzw. << ausführen.

Funktionstabelle

Die folgenden Funktionen sind in der Header-Datei stream.h enthalten:

Klasse Funktionen
Filebuf Es setzt Dateipuffer auf Lesen / Schreiben. Es enthält die Funktionen close () und open ()
fstreambase Es ist die Basisklasse für die Klassen ifstream, fstream und ofstream. Seine Operationen sind den Dateistreams gemeinsam.
ifstream Es ist eine Eingabedateistream-Klasse zum Bereitstellen von Eingabeoperationen.
ofstream Es ist eine Stream-Klasse für Ausgabedateien zum Bereitstellen von Ausgabeoperationen.
fstream Es ist eine Eingabe / Ausgabe-Stream-Klasse. Es unterstützt gleichzeitige Ein- / Ausgabevorgänge.

C ++ - Headerdateien für Eingabe / Ausgabe

C ++ bietet drei Bibliotheken mit Funktionen zum Ausführen grundlegender Eingabe- / Ausgabeaufgaben. Sie beinhalten:

  • Iostream: Es ist eine Abkürzung für Standard Input / Output Stream. Diese Header-Datei enthält Definitionen für Objekte wie cin / cout / cerr.
  • Iomanip: Es ist eine Abkürzung für Eingabe- / Ausgabemanipulatoren. Die Bibliothek verfügt über Funktionen, mit denen Streams bearbeitet werden können. Es enthält Definitionen für Objekte wie setw, setprecision und andere.
  • Fstream: Dies ist eine Header-Datei zur Beschreibung des Dateistreams. Es behandelt Daten, die aus einer Datei als Eingabe gelesen oder in eine Datei geschrieben werden, die Ausgabe.

Die Schlüsselwörter cin und cout sind in C ++ sehr beliebt. Sie werden zum Aufnehmen von Eingaben bzw. zum Drucken von Ausgaben verwendet. Um sie zu verwenden, müssen Sie die iostream-Headerdatei in Ihr Programm aufnehmen. Der Grund ist, dass sie in dieser Header-Datei definiert sind. Wenn die iostream-Headerdatei nicht eingeschlossen wird, wird ein Fehler generiert. Dies ist darauf zurückzuführen, dass der C ++ - Compiler die Bedeutung der Schlüsselwörter nicht verstanden hat.

Die in der iostream-Headerdatei definierten Hauptobjekte sind cin, cout, cerr und clog. Lassen Sie uns sie diskutieren.

std :: cout

Das cout-Objekt ist eine Instanz der iostream-Klasse. Es wird zur Erzeugung der Ausgabe auf einem Standardausgabegerät verwendet, bei dem es sich normalerweise um den Bildschirm handelt. Es wird zusammen mit dem Stream-Einfügeoperator (<<) verwendet.

Beispiel:

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

Ausgabe:

Hier ist ein Screenshot des Codes:

Code Erläuterung:

  1. Fügen Sie die iostream-Headerdatei ein, in der das cout-Objekt definiert ist.
  2. Fügen Sie den Standard-Namespace ein, damit wir ihn bei Verwendung seiner Klassen nicht aufrufen müssen.
  3. Rufen Sie die Funktion main () auf. Der Programmcode sollte in seinem Hauptteil hinzugefügt werden. Die öffnende geschweifte Klammer markiert den Anfang ihres Körpers.
  4. Erstellen Sie eine Zeichenvariable mit dem Namen welcome, um die Zeichenfolge Welcome to Guru99 zu speichern.
  5. Drucken Sie den Wert der Zeichenfolge Willkommen auf der Konsole. Das endl ist ein C ++ - Schlüsselwort, das Endzeile bedeutet. Es bewegt den Cursor, um mit dem Drucken von Text in der nächsten Zeile zu beginnen.
  6. Das Programm muss nach erfolgreicher Ausführung einen Wert zurückgeben.
  7. Ende des Funktionskörpers main ().

std :: cin

Das cin-Objekt ist eine Instanz der istream-Klasse. Es liest Eingaben vom Eingabegerät, der Tastatur. Es wird normalerweise zusammen mit dem Extraktionsoperator (>>) verwendet. Das Extraktionsobjekt ist für das Extrahieren der über die Tastatur eingegebenen Daten aus dem cin-Objekt verantwortlich.

Beispiel:

Das folgende Beispiel zeigt, wie das Schlüsselwort cin in C ++ verwendet wird:

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

Ausgabe:

Hier ist ein Screenshot des Codes:

Code Erläuterung:

  1. Fügen Sie die iostream-Header-Datei in unser Programm ein. Das cin-Objekt ist in dieser Header-Datei definiert.
  2. Fügen Sie den Standard-Namespace ein, um seine Klassen zu verwenden. Sie müssen std nicht aufrufen, wenn Sie seine Klassen verwenden.
  3. Rufen Sie die Funktion main () auf. Der Programmcode sollte in seinem Hauptteil hinzugefügt werden.
  4. Der Start des Programmkörpers.
  5. Deklarieren Sie eine Ganzzahlvariable mit dem Namen number.
  6. Drucken Sie eine Nachricht auf dem Bildschirm, in der der Benutzer aufgefordert wird, eine Nummer einzugeben.
  7. Lesen Sie den vom Benutzer auf der Konsole eingegebenen Wert über die Tastatur.
  8. Drucken Sie den oben gelesenen Wert neben anderem Text auf der Konsole aus.
  9. Das Programm sollte einen Wert zurückgeben, wenn es erfolgreich ausgeführt wird.
  10. Ende des Körpers der Hauptfunktion.

std :: cerr

Das cerr-Objekt bildet den Standardfehlerstrom für die Ausgabe von Fehlern in C ++. Cerr ist eine Instanz der ostream-Klasse. Das cerr-Objekt ist ungepuffert. Dies bedeutet, dass es verwendet wird, wenn eine Fehlermeldung sofort angezeigt werden soll.

Da es ungepuffert ist, speichert es keine Fehlermeldung für eine spätere Anzeige. Es wird zusammen mit dem Stream-Einfügeoperator (<<) verwendet.

Beispiel:

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

Ausgabe:

Hier ist ein Screenshot des Codes:

Code Erläuterung:

  1. Fügen Sie die iostream-Headerdatei ein, in der das cerr-Objekt definiert wurde.
  2. Fügen Sie den Standard-Namespace ein, damit wir ihn bei Verwendung seiner Klassen nicht aufrufen müssen.
  3. Rufen Sie die Funktion main () auf. Die Programmlogik sollte in ihrem Hauptteil hinzugefügt werden. Die öffnende geschweifte Klammer markiert den Beginn des Funktionskörpers.
  4. Verwenden Sie das cerr-Objekt, um einen Fehler auf der Konsole zu drucken.
  5. Das Programm muss bei erfolgreicher Ausführung einen Wert zurückgeben.
  6. Ende des Körpers der Hauptfunktion.

std :: clog

Das Clog-Objekt ist eine Instanz der ostream-Klasse. Es wird verwendet, um Fehler auf dem Standarddisplay, dem Monitor, anzuzeigen. Es ähnelt dem cerr-Objekt, ist jedoch gepuffert. Da es gepuffert ist, speichert es die Fehlermeldung im Puffer, bis der Puffer gefüllt / geleert ist. Es wird zusammen mit dem Stream-Einfügeoperator (<<) verwendet.

Beispiel:

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

Ausgabe:

Hier ist ein Screenshot des Codes:

Code Erläuterung:

  1. Einschließlich der iostream-Headerdatei, in der das Clog-Objekt definiert ist.
  2. Einschließlich des Standard-Namespace, damit wir seine Klassen verwenden können, ohne ihn aufzurufen.
  3. Aufruf der Funktion main (). Die Programmlogik sollte in ihrem Hauptteil hinzugefügt werden. Das {markiert den Beginn des Funktionskörpers.
  4. Verwenden Sie das Clog-Objekt, um einen Fehler auf der Standardausgabe, dem Monitor, zu drucken.
  5. Das Programm muss nach erfolgreichem Abschluss einen Wert zurückgeben.
  6. Das Ende des Funktionskörpers main ().

Fehlerbehandlung mit E / A-Streams:

Um zu überprüfen, ob ein Stream gültig ist oder nicht, können Sie ihn als Booleschen Wert verwenden.

Hier ist ein Beispiel:

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

Um weitere Details zum Stream-Status zu erhalten, können Sie folgende Funktionen verwenden:

  • good () - wird true zurückgeben, wenn alles in Ordnung ist.
  • bad () - gibt true zurück, wenn ein schwerwiegender Fehler auftritt.
  • fail () - gibt nach erfolglosem Stream-Vorgang true zurück.
  • eof () - gibt true zurück, wenn das Ende einer Datei erreicht ist.

Testen Sie das Leseergebnis, um festzustellen, ob eine bestimmte Lese- / Schreiboperation fehlgeschlagen ist.

Gehen Sie folgendermaßen vor, um zu überprüfen, ob der Benutzer eine gültige Ganzzahl eingegeben hat:

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

Zusammenfassung

  • Die Eingabe- und Ausgabeaufgaben in C ++ erfolgen über eine Bytefolge. Die Bytes werden Streams genannt.
  • In einem Eingabestream fließen die Bytes wie eine Tastatur vom Eingabegerät zum Hauptspeicher.
  • In einem Ausgabestream werden die Bytes vom Hauptspeicher dann zu einem Ausgabegerät wie einem Monitor.
  • Das cin-Objekt ist eine Instanz der istream-Klasse. Es liest Eingaben von einem Eingabegerät wie der Tastatur.
  • Das cout-Objekt ist eine Instanz der ostream-Klasse. Es erzeugt Ausgabe auf Ausgabegeräten wie dem Monitor.
  • Das cerr-Objekt ist eine Instanz der ostream-Klasse. Es zeigt Fehlerobjekte auf dem Monitor an.
  • Das Clog-Objekt ist eine Instanz der ostream-Klasse. Es zeigt Fehlermeldungen auf Ausgabegeräten an.
  • Das Clog-Objekt puffert Fehlermeldungen, das cerr-Objekt dagegen nicht.