Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C++ Streams meistern: cout, cin, cerr, clog – Praktischer Guide

Was sind Streams in C++?

C++ abstrahiert Ein‑ und Ausgabe durch eine Familie von Stream‑Klassen, die Daten als Byte‑Sequenzen transferieren. Diese Streams sind das Rückgrat jeder I/O‑Operation in der Sprache.

Streams lassen sich in zwei Kategorien unterteilen:

Stream‑Typen

Dieses Tutorial behandelt:

Wie Streams funktionieren

Der typische Ablauf einer C++‑Stream‑Operation:

  1. Stream‑Objekt des passenden Typs instanziieren.
  2. Stream über get/put‑Zeiger mit Gerät oder Datei assoziieren.
  3. I/O über Extraktions‑(>>) oder Einfüge‑Operator (<<) durchführen.

Stream‑Funktionen Überblick

streambuf stellt mehrere Klassen für Dateipuffer bereit:

KlasseBeschreibung
filebufVerwaltet Dateipuffer für Lesen/Schreiben. Stellt open() und close() bereit.
fstreambaseBasisklasse für ifstream, fstream, ofstream – gemeinsame Dateistream‑Operationen.
ifstreamInput‑Dateistream zum Lesen.
ofstreamOutput‑Dateistream zum Schreiben.
fstreamKombinierter Input/Output‑Stream.

C++ Header‑Dateien für I/O

  • iostream – Stellt cin, cout, cerr, clog bereit.
  • iomanip – Bietet Manipulatoren wie setw, setprecision.
  • fstream – Handhabt dateibasierte Streams.

Alle diese Objekte sind in iostream definiert; das Weglassen des Headers führt zu Kompilierfehlern.

std::cout

Das Objekt cout schreibt auf den Standard‑Ausgabestream (meist die Konsole). Es wird mit dem Einfügeoperator (<<) verwendet.

Beispiel

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

Ausgabe:

C++ Streams meistern: cout, cin, cerr, clog – Praktischer Guide

Code‑Walkthrough:

  1. iostream für cout einbinden.
  2. std‑Namespace nutzen, um Präfixe zu vermeiden.
  3. Zeichenarray mit Nachricht definieren.
  4. Nachricht mit endl (Zeilenumbruch) ausgeben.
  5. return 0 für Erfolg.

std::cin

Das Objekt cin liest vom Standard‑Eingabestream (typischerweise Tastatur). Es arbeitet mit dem Extraktionsoperator (>>).

Beispiel

#include <iostream>
using namespace std;
int main() {
    int number;
    cout << "Zahl eingeben:";
    cin >> number;
    cout << "\nSie haben eingegeben: " << number;
    return 0;
}

Ausgabe:

C++ Streams meistern: cout, cin, cerr, clog – Praktischer Guide

Code‑Erklärung:

  1. iostream für cin/cout einbinden.
  2. std‑Namespace.
  3. Integer‑Variable deklarieren.
  4. Benutzer auffordern.
  5. Eingabe mit >> lesen.
  6. Eingegebenen Wert widerhallen.
  7. return 0 bei Erfolg.

std::cerr

Der Stream cerr gibt Fehlermeldungen sofort aus, da er ungepuffert ist. Nutzen Sie ihn für kritische Fehler, die augenblicklich angezeigt werden müssen.

Beispiel

#include <iostream>
using namespace std;
int main() {
    cerr << "Ein Fehler ist aufgetreten!";
    return 0;
}

Ausgabe:

C++ Streams meistern: cout, cin, cerr, clog – Praktischer Guide

Erklärung:

  1. iostream für cerr einbinden.
  2. std‑Namespace.
  3. Fehlermeldung sofort ausgeben.
  4. return 0.

std::clog

Im Gegensatz zu cerr ist clog gepuffert; Nachrichten werden gespeichert, bis der Puffer geleert wird. Es eignet sich für Logging, das verzögert werden darf.

Beispiel

#include <iostream>
using namespace std;
int main() {
    clog << "Ein Fehler ist aufgetreten!";
    return 0;
}

Ausgabe:

C++ Streams meistern: cout, cin, cerr, clog – Praktischer Guide

Erklärung:

  1. iostream für clog einbinden.
  2. std‑Namespace.
  3. Gepufferte Fehlermeldung schreiben.
  4. return 0.

Fehlerbehandlung mit Stream‑Objekten

Streams können in einem booleschen Kontext ausgewertet werden, um ihre Gültigkeit zu prüfen. Zusätzlich liefern Member‑Funktionen granulare Status‑Checks:

  • good() – true, wenn kein Fehler aufgetreten ist.
  • bad() – true bei fatalem Fehler.
  • fail() – true nach fehlgeschlagener Operation.
  • eof() – true bei Erreichen des Stream‑Endes.

Beispiel – Datei‑Öffnung prüfen:

ifstream file("myfile.txt");
if (!file) {
    cout << "Datei NICHT geöffnet!" << endl;
}

Beispiel – Benutzereingabe validieren:

int p;
if (cin >> p) {
    cout << "Gültige Zahl eingegeben" << endl;
}

Zusammenfassung

  • In C++ erfolgt I/O über Streams, die Byte‑Sequenzen transferieren.
  • Input‑Streams bewegen Daten vom Gerät in den Speicher; Output‑Streams vom Speicher zum Gerät.
  • cin (istream) liest Tastatureingabe.
  • cout (ostream) schreibt auf die Konsole.
  • cerr (ostream) zeigt sofortige Fehlermeldungen.
  • clog (ostream) puffert Fehlerausgabe für späteres Flushen.
  • Gepufferte Streams können mit good(), bad(), fail(), eof() geprüft werden.

C Sprache

  1. C# Grundlagen: Eingabe und Ausgabe Essentials
  2. C++-Eingabe und Ausgabe meistern: Ein praktischer Leitfaden
  3. C Eingabe und Ausgabe (I/O) meistern: scanf() und printf() erklärt
  4. Java Ein- und Ausgabe meistern: Drucken, Lesen und Formatieren Ihrer Daten
  5. C++ switch‑case meistern: Syntax, Einsatz und Praxisbeispiele
  6. C++ Exception Handling meistern: Praktische try, catch, throw Beispiele
  7. C++ Dynamische Array‑Allokation: Praktischer Leitfaden mit Code‑Beispielen
  8. C++ Structs erklärt mit praktischem Beispiel
  9. D-Latches meistern: Design, Funktionsweise und wesentliche Unterschiede
  10. Eingabe und Ausgabe in C meistern: scanf, printf & Co.