C++ Grundlegende Eingabe/Ausgabe: Beispiel Cout, Cin, Cerr
โก Intelligente Zusammenfassung
C++ Bei den Ein- und Ausgabevorgรคngen werden Stream-Objekte verwendet, die Daten als Bytefolgen zwischen Programmen und Gerรคten รผbertragen. Dabei liest cin die Tastatureingaben, wรคhrend cout, cerr und clog die Ausgaben auf dem Bildschirm ausgeben.

Was sind Streams in C++?
C++ stellt Benutzern eine Reihe von Bibliotheken zur Verfรผgung, mit denen sie Eingabe-/Ausgabeaufgaben ausfรผhren kรถnnen. Diese Aufgaben werden in Form von Bytesequenzen ausgefรผhrt, die allgemein als Streams bezeichnet werden.
Die Streams sind zweigeteilt:
Arten von Streams
- Eingabestrom: Hierbei handelt es sich um eine Art Stream, bei dem die Bytes von einem Gerรคt wie einer Tastatur zum Hauptspeicher flieรen.
- Ausgabestrom: Dabei handelt es sich um eine Art Stream, bei dem die Bytes in die entgegengesetzte Richtung flieรen, also vom Hauptspeicher zum Gerรคt, beispielsweise zum Bildschirm.
Wie funktionieren Streams?
C++ Streams funktionieren wie folgt:
- Zunรคchst wird ein Stream mit dem richtigen Typ initialisiert.
- Als Nรคchstes sollten Sie mithilfe von Get-/Put-Zeigern angeben, wo die Ein-/Ausgabe erfolgen soll.
- Nachdem Sie die richtige Position in einem Stream erreicht haben, kรถnnen Sie Eingabe- und Ausgabeaufgaben mit den Operatoren >> bzw. << ausfรผhren.
Funktionstabelle
Die folgenden Funktionen sind in der Headerdatei stream.h enthalten:
| Klasse | Funktionen |
|---|---|
| Filebuf | Es setzt Dateipuffer zum Lesen/Schreiben. Es enthรคlt die Funktionen close() und open() |
| fstreambase | Es handelt sich um die Basisklasse fรผr die Klassen ifstream, fstream und ofstream. Die Operationen sind fรผr die Dateistrรถme gleich. |
| ifstream | Es handelt sich um eine Eingabedatei-Stream-Klasse zum Bereitstellen von Eingabevorgรคngen. |
| ofstream | Es handelt sich um eine Ausgabedatei-Stream-Klasse zum Bereitstellen von Ausgabevorgรคngen. |
| fstream | Es handelt sich um eine Eingabe-/Ausgabe-Stream-Klasse. Sie unterstรผtzt gleichzeitige Eingabe-/Ausgabevorgรคnge. |
C++ Headerdateien fรผr Eingabe/Ausgabe
C++ bietet drei Bibliotheken mit Funktionen zur Durchfรผhrung grundlegender Ein-/Ausgabeaufgaben. Dazu gehรถren:
- Iostream: Es ist ein Akronym fรผr Standard Input/Output Stream. Diese Header-Datei enthรคlt Definitionen fรผr Objekte wie cin/cout/cerr.
- Iomanip: Es ist ein Akronym fรผr Input/Output Manipulators. Die Bibliothek verfรผgt รผber Funktionen, die zur Manipulation von Streams verwendet 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 verarbeitet Daten, die aus einer Datei als Eingabe gelesen oder in eine Datei geschrieben werden (Ausgabe).
Die Schlรผsselwรถrter cin und cout sind sehr beliebt in C++. Sie werden verwendet, um Eingaben entgegenzunehmen bzw. Ausgaben zu drucken. Um sie zu verwenden, mรผssen Sie die iostream-Headerdatei in Ihr Programm einbinden. Der Grund dafรผr ist, dass sie in dieser Headerdatei definiert sind. Wenn die iostream-Headerdatei nicht eingebunden wird, wird ein Fehler generiert. Dies ist auf einen Fehler des C++ Compiler, um die Bedeutung der Schlรผsselwรถrter zu verstehen.
Die wichtigsten in der iostream-Headerdatei definierten Objekte sind cin, cout, cerr und clog. Lassen Sie uns darรผber diskutieren.
std :: cout
Das cout-Objekt ist eine Instanz der iostream-Klasse. Es wird verwendet, um Ausgaben auf einem Standardausgabegerรคt zu erzeugen, was normalerweise der Bildschirm ist. Es wird zusammen mit dem Stream-Einfรผgungsoperator (<<) verwendet.
Beispiel
#include <iostream> using namespace std; int main() { char welcome[] = "Welcome to Guru99"; cout << welcome << endl; return 0; }
Ausgang:
Hier ist ein Screenshot des Codes:
Code Erlรคuterung:
- Fรผgen Sie die iostream-Headerdatei ein, in der das Cout-Objekt definiert ist.
- Schlieรen Sie den std-Namespace ein, damit wir ihn bei Verwendung seiner Klassen nicht aufrufen mรผssen.
- Rufen Sie die Funktion main() auf. Der Programmcode sollte in seinen Hauptteil eingefรผgt werden. Die รถffnende geschweifte Klammer { markiert den Anfang seines Kรถrpers.
- Erstelle eine Zeichenvariable namens โwelcomeโ, die die Zeichenkette โWillkommen beiโ speichert. Guru99
- Drucken Sie den Wert der Zeichenfolge welcome auf der Konsole. Das endl ist ein C++ Schlรผsselwort bedeutet Zeilenende. Es bewegt den Cursor, um mit dem Drucken des Textes in der nรคchsten Zeile zu beginnen.
- Das Programm muss bei erfolgreicher Ausfรผhrung einen Wert zurรผckgeben.
- Ende des Hauptteils der Funktion main().
std::cin
Das `cin`-Objekt ist eine Instanz der `istream`-Klasse. Es liest Eingaben vom Eingabegerรคt, der Tastatur. Normalerweise wird es zusammen mit dem `ex`-Objekt verwendet.tractionsoperator (>>). Der extracDas tionsobjekt ist fรผr ex verantwortlichtracDaten, die รผber die Tastatur vom CIN-Objekt eingegeben werden.
Beispiel
Das folgende Beispiel zeigt die Verwendung des Schlรผsselworts cin in C++:
#include <iostream> using namespace std; int main() { int number; cout << "Enter a number:"; cin >> number; cout << "\nYou entered: " << number; return 0; }
Ausgang:
Hier ist ein Screenshot des Codes:
Code Erlรคuterung:
- Fรผgen Sie die iostream-Header-Datei in unser Programm ein. Das cin-Objekt wird in dieser Header-Datei definiert.
- Schlieรen Sie den std-Namespace ein, um seine Klassen zu verwenden. Sie mรผssen std nicht aufrufen, wenn Sie seine Klassen verwenden.
- Rufen Sie die Funktion main() auf. Der Programmcode sollte in seinen Hauptteil eingefรผgt werden.
- Der Beginn des Hauptteils des Programms.
- Deklarieren Sie eine ganzzahlige Variable benannte Nummer.
- Drucken Sie eine Meldung auf dem Bildschirm, die den Benutzer zur Eingabe einer Nummer auffordert.
- Lesen Sie den vom Benutzer an der Konsole eingegebenen Wert รผber die Tastatur ab.
- Drucken Sie den oben gelesenen Wert zusammen mit anderem Text auf der Konsole aus.
- Das Programm sollte einen Wert zurรผckgeben, wenn es erfolgreich ausgefรผhrt wird.
- Ende des Kรถrpers der Hauptfunktion.
std::cerr
Das cerr-Objekt bildet den Standardfehlerstrom zur Ausgabe von Fehlern in C++. Cerr ist eine Instanz der Klasse ostream. Das cerr-Objekt ist ungepuffert. Das heiรt, es wird verwendet, 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รผgungsoperator (<<) verwendet.
Beispiel
#include <iostream> using namespace std; int main() { cerr << "An Error occurred!"; return 0; }
Ausgang:
Hier ist ein Screenshot des Codes:
Code Erlรคuterung:
- Fรผgen Sie die iostream-Header-Datei ein, in der das Cerr-Objekt definiert wurde.
- Schlieรen Sie den std-Namespace ein, damit wir ihn bei Verwendung seiner Klassen nicht aufrufen mรผssen.
- Rufen Sie die Funktion main() auf. Die Programmlogik sollte in den Hauptteil eingefรผgt werden. Die รถffnende geschweifte Klammer markiert den Anfang des Funktionskรถrpers.
- Verwenden Sie das cerr-Objekt, um einen Fehler auf der Konsole auszugeben.
- Das Programm muss bei erfolgreicher Ausfรผhrung einen Wert zurรผckgeben.
- Ende des Kรถrpers der Hauptfunktion.
std::clog
Das clog-Objekt ist eine Instanz der ostream-Klasse. Es wird verwendet, um Fehler auf der Standardanzeige, dem Monitor, anzuzeigen. Es รคhnelt dem cerr-Objekt, ist aber 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รผgungsoperator (<<) verwendet.
Beispiel
#include <iostream> using namespace std; int main() { clog << "An Error occurred!"; return 0; }
Ausgang:
Hier ist ein Screenshot des Codes:
Code Erlรคuterung:
- Einschlieรlich der iostream-Header-Datei, in der das Clog-Objekt definiert ist.
- Einschlieรlich des std-Namespace, damit wir seine Klassen verwenden kรถnnen, ohne ihn aufzurufen.
- Aufruf der Funktion main(). Die Programmlogik sollte in den Hauptteil eingefรผgt werden. Das { markiert den Anfang des Funktionskรถrpers.
- Verwenden Sie das Clog-Objekt, um einen Fehler auf der Standardausgabe, dem Monitor, auszugeben.
- Das Programm muss bei erfolgreichem Abschluss einen Wert zurรผckgeben.
- Das Ende des Hauptteils der Funktion main().
Fehlerbehandlung mit IO-Streams
Die gleichen Stream-Objekte melden auch, ob eine Operation erfolgreich war, was durch Stream-Statusprรผfungen ermittelt wird.
Um zu รผberprรผfen, ob ein Stream gรผltig ist oder nicht, kรถnnen Sie ihn als Booleschen Wert verwenden.
Ein Beispiel:
ifstream file( "myfile.txt" ); if ( ! file ) { cout << "File NOT opened!" << endl; }
Um weitere Details zum Stream-Status zu erhalten, kรถnnen Sie diese Funktionen verwenden:
- good() โ gibt true zurรผck, wenn alles in Ordnung ist.
- bad() โ gibt true zurรผck, wenn ein schwerwiegender Fehler auftritt.
- fail() โ gibt nach einem erfolglosen Stream-Vorgang โtrueโ zurรผck.
- eof()- gibt true zurรผck, wenn das Ende einer Datei erreicht wird.
Um festzustellen, ob ein bestimmter Lese-/Schreibvorgang fehlgeschlagen ist, testen Sie das Leseergebnis.
Um beispielsweise zu รผberprรผfen, ob der Benutzer eine gรผltige Ganzzahl eingegeben hat, gehen Sie wie folgt vor:
int p; if ( cin >> p ) { cout << "Enter valid number" << endl; }




