Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C++ Streams Beheersen: cout, cin, cerr, clog – Praktische Handleiding

Wat zijn Streams in C++?

C++ abstracteert input en output door een familie stream‑klassen die data als byte‑sequences overdragen. Deze streams zijn de ruggengraat van elke I/O‑operatie in de taal.

Streams vallen in twee categorieën:

Typen Streams

  • Input Streams – Ontvangen data van apparaten zoals toetsenborden of bestanden en plaatsen het in het geheugen.
  • Output Streams – Sturen data van het geheugen naar apparaten zoals monitors of bestanden.

Deze tutorial behandelt:

  • Stream‑fundamenten
  • Hoe streams onder de motorkap werken
  • Belangrijke stream‑klassen en hun functies
  • C++ header‑bestanden voor I/O
  • Gebruik van std::cout, std::cin, std::cerr en std::clog
  • Foutafhandeling met stream‑objecten

Hoe Streams Werken

De typische stroom van een C++ stream‑operatie is:

  1. Instantieer een stream‑object van het juiste type.
  2. Koppel de stream aan een apparaat of bestand via get/put pointers.
  3. Voer I/O uit via de extractie (>> ) of insertie (<< ) operators.

Stream Functies Overzicht

De streambuf-header biedt verschillende klassen die file buffers beheren:

KlasseBeschrijving
filebufBeheert file buffers voor lezen/schrijven. Biedt open() en close().
fstreambaseBasisklasse voor ifstream, fstream, ofstream – gemeenschappelijke file stream operaties.
ifstreamInput file stream voor het lezen van data.
ofstreamOutput file stream voor het schrijven van data.
fstreamGecombineerde input/output stream.

C++ Header‑bestanden voor I/O

  • iostream – Levert cin, cout, cerr en clog.
  • iomanip – Biedt manipulators zoals setw en setprecision.
  • fstream – Behandelt file‑based streams.

Al deze objecten zijn gedefinieerd in iostream; het weglaten van de header leidt tot een compilatiefout.

std::cout

Het cout-object schrijft naar de standaard output‑stream, meestal de console. Het wordt gebruikt met de insertie‑operator (<<).

Voorbeeld

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

Output:

C++ Streams Beheersen: cout, cin, cerr, clog – Praktische Handleiding

Code‑walkthrough:

  1. Include iostream voor toegang tot cout.
  2. Gebruik de std-naamruimte om prefixen te vermijden.
  3. Definieer een karakter‑array met het bericht.
  4. Print het bericht met endl voor een nieuwe regel.
  5. Return 0 voor succes.

std::cin

Het cin-object leest van de standaard input‑stream, meestal het toetsenbord. Het werkt samen met de extractie‑operator (>>).

Voorbeeld

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

Output:

C++ Streams Beheersen: cout, cin, cerr, clog – Praktische Handleiding

Code‑uitleg:

  1. Include iostream voor cin en cout.
  2. Gebruik std-naamruimte.
  3. Declareer een integer‑variabele.
  4. Prompt de gebruiker.
  5. Lees invoer met >>.
  6. Echo de ingevoerde waarde.
  7. Return 0 bij succes.

std::cerr

De cerr-stream geeft foutmeldingen direct weer omdat het unbuffered is. Gebruik het voor kritieke fouten die onmiddellijk getoond moeten worden.

Voorbeeld

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

Output:

C++ Streams Beheersen: cout, cin, cerr, clog – Praktische Handleiding

Uitleg:

  1. Include iostream voor cerr.
  2. Gebruik std-naamruimte.
  3. Print een foutmelding onmiddellijk.
  4. Return 0.

std::clog

In tegenstelling tot cerr is clog gebufferd; het bewaart berichten tot de buffer geflusht wordt. Het is nuttig voor logging die vertraagd mag worden.

Voorbeeld

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

Output:

C++ Streams Beheersen: cout, cin, cerr, clog – Praktische Handleiding

Uitleg:

  1. Include iostream voor clog.
  2. Gebruik std-naamruimte.
  3. Schrijf een gebufferde foutmelding.
  4. Return 0.

Foutafhandeling met Stream‑Objecten

Streams kunnen in een boolean‑context geëvalueerd worden om hun geldigheid te checken. Daarnaast bieden member‑functies gedetailleerde status‑checks:

  • good() – true als geen fouten zijn opgetreden.
  • bad() – true als een fatale fout is ingesteld.
  • fail() – true na een mislukte operatie.
  • eof() – true wanneer het einde van de stream bereikt is.

Voorbeeld – bestand openen verifiëren:

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

Voorbeeld – gebruikersinvoer valideren:

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

Samenvatting

  • In C++ wordt I/O uitgevoerd via streams die byte‑sequences overdragen.
  • Input streams verplaatsen data van apparaat naar geheugen; output streams van geheugen naar apparaat.
  • cin (istream) leest toetsenbordinvoer.
  • cout (ostream) schrijft naar de console.
  • cerr (ostream) toont direct foutmeldingen.
  • clog (ostream) buffert foutoutput voor later flushen.
  • Buffered streams kunnen gecheckt worden met good(), bad(), fail() en eof().

C Taal

  1. C# Fundamentals: Invoer en Uitvoer Basis
  2. C++ input en output: een praktische gids
  3. C Input en Output (I/O) Beheersen: scanf() en printf() Uitgelegd
  4. C++ Switch‑Case Onder de Knie: Syntaxis, Gebruik en Praktische Voorbeelden
  5. C++ Exception Handling: Praktische Try, Catch, Throw Voorbeelden
  6. C++ Dynamische Array‑Allocatie: Praktische Handleiding met Code‑Voorbeelden
  7. C++ Structs Uitgelegd met een Praktisch Voorbeeld
  8. Invoer en uitvoer in C programmeren: Volledige gids
  9. C++ Begrijpen: Kernsyntaxis en Objectgeoriënteerde Fundamenten
  10. D Latches Onder de Knie: Ontwerp, Werking en Belangrijke Verschillen
  11. Java Input & Output beheersen: printen, lezen en formatteren