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

Indholdsfortegnelse:

Anonim

Hvad er streams i C ++?

C ++ giver brugerne et antal biblioteker, som de kan bruge til at udføre input / output-opgaver. Disse opgaver udføres i form af bytesekvenser, populært kaldet streams.

Strømmene er opdelt i to:

Typer af streams

  • Input Stream: Dette er en type stream, hvor byte flyder fra en enhed såsom et tastatur til hovedhukommelsen.
  • Output Stream: Dette er en type stream, hvor byte flyder i den modsatte retning, det vil sige fra hovedhukommelsen og derefter til enheden, såsom displayskærm.

I denne C ++ tutorial lærer du:

  • Hvad er streams i C ++?
  • Hvordan fungerer streams?
  • Funktionstabel
  • C ++ headerfiler til input / output
  • std :: cout
  • std :: cin
  • std :: cerr
  • std :: tilstopning
  • Fejlhåndtering med IO-streams:

Hvordan fungerer streams?

C ++ streams fungerer som følger:

  1. For det første initialiseres en stream med den rigtige type.
  2. Dernæst skal du angive, hvor I / O vil forekomme ved hjælp af get / put-markører.
  3. Når du er kommet til det rigtige sted i en stream, kan du udføre input- og outputopgaver ved hjælp af henholdsvis >> og << operatorer.

Funktionstabel

Følgende er de funktioner, der findes i stream.h header-filen:

Klasse Funktioner
Filebuf Det indstiller filbuffere til at læse / skrive. Det har tæt () og åbent () funktioner i det
fstreambase Det er basisklassen for klasserne ifstream, fstream og ofstream. Dens handlinger er fælles for filstrømmene.
ifstream Det er en inputfilstrømsklasse til levering af inputhandlinger.
ofstream Det er en outputfilstrømsklasse til levering af outputoperationer.
fstream Det er en input / output stream-klasse. Det understøtter samtidige input / output-operationer.

C ++ headerfiler til input / output

C ++ giver tre biblioteker, der kommer med funktioner til udførelse af grundlæggende input / out-opgaver. De omfatter:

  • Iostream: Det er et akronym for standard input / output stream. Denne header-fil leveres med definitioner for objekter som cin / cout / cerr.
  • Iomanip: Det er et akronym for input / output-manipulatorer. Biblioteket leveres med funktioner, der kan bruges til manipulation af streams. Den indeholder definitioner for objekter som setw, setprecision og andre.
  • Fstream: Dette er en headerfil til beskrivelse af filstrømmen . Det håndterer data, der læses fra filen som input, eller som skrives til en fil, output.

Cin- og cout-nøgleordene er meget populære i C ++. De bruges til at tage henholdsvis input og udskrivning. For at bruge dem skal du medtage iostream header-fil i dit program. Årsagen er, at de er defineret i den overskriftsfil. Hvis iostream-headerfilen ikke medtages, genereres der en fejl. Dette skyldes, at C ++ - kompilatoren ikke forstod betydningen af ​​nøgleordene.

De vigtigste objekter defineret i iostream header-filen er cin, cout, cerr og clog. Lad os diskutere dem.

std :: cout

Cout-objektet er en forekomst af iostream-klassen. Det bruges til at producere output på en standard outputenhed, som normalt er skærmen. Det bruges sammen med strømindsættelsesoperatøren (<<).

Eksempel:

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

Produktion:

Her er et screenshot af koden:

Kode Forklaring:

  1. Inkluder iostream-headerfilen, hvor cout-objektet er defineret.
  2. Inkluder std navneområdet, så vi ikke behøver at kalde det, når vi bruger dets klasser.
  3. Ring til hovedfunktionen (). Programkoden skal tilføjes i sin krop. Den åbnede krøllede bøjle {markerer begyndelsen på sin krop.
  4. Opret en tegnvariabel med navnet Welcome for at holde strengen Welcome to Guru99.
  5. Udskriv værdien af ​​strengens velkomst på konsollen. Endl er et C ++ nøgleord, der betyder slutlinie. Det flytter markøren for at begynde at udskrive tekst på den næste linje.
  6. Programmet skal returnere værdi efter vellykket udførelse.
  7. Slutningen af ​​hoveddelen af ​​funktionen ().

std :: cin

Cin-objektet er en forekomst af istream-klassen. Den læser input fra inputenheden, tastaturet. Det bruges normalt sammen med ekstraktionsoperatøren (>>). Ekstraktionsobjektet er ansvarlig for at udtrække data, der er indtastet via tastaturet fra cin-objektet.

Eksempel:

Følgende eksempel viser, hvordan man bruger cin-nøgleordet i C ++:

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

Produktion:

Her er et screenshot af koden:

Kode Forklaring:

  1. Inkluder iostream header-filen i vores program. Cin-objektet er defineret i denne headerfil.
  2. Inkluder std navneområdet for at bruge dets klasser. Du behøver ikke at ringe til std, når du bruger dens klasser.
  3. Ring til hovedfunktionen (). Programkoden skal tilføjes i sin krop.
  4. Starten af ​​programmets krop.
  5. Erklære en heltalsvariabel med navnet.
  6. Udskriv en besked på skærmen, der beder brugeren om at indtaste et nummer.
  7. Læs den værdi, der er indtastet af brugeren på konsollen fra tastaturet.
  8. Udskriv ovennævnte værdi på konsollen sammen med anden tekst.
  9. Programmet skal returnere en værdi, hvis det udføres med succes.
  10. Slutningen af ​​hovedfunktionens krop.

std :: cerr

Cerr-objektet danner standardfejlstrømmen til output af fejl i C ++. Cerr er et eksempel på ostream-klassen. Cerr-genstanden er ubufret. Dette betyder, at den bruges, når en fejlmeddelelse skal vises med det samme.

Da den ikke er bufret, gemmer den ikke fejlmeddelelse til senere visning. Det bruges sammen med strømindsættelsesoperatøren (<<).

Eksempel:

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

Produktion:

Her er et screenshot af koden:

Kode Forklaring:

  1. Inkluder iostream header-fil, hvor cerr-objektet er defineret.
  2. Inkluder std navneområdet, så vi ikke behøver at kalde det, når vi bruger dets klasser.
  3. Ring til hovedfunktionen (). Programmets logik skal tilføjes i dets krop. Den åbnede krøllede bøjle markerer begyndelsen på funktionens krop.
  4. Brug cerr-objektet til at udskrive en fejl på konsollen.
  5. Programmet skal returnere en værdi efter vellykket udførelse.
  6. Slutningen af ​​hovedfunktionens krop.

std :: tilstopning

Tilstopningsobjektet er en forekomst af ostream-klassen. Det bruges til at vise fejl på standardskærmen, skærmen. Det ligner cerr-objektet, men det er bufret. Da den er bufret, gemmer den fejlmeddelelsen i bufferen, indtil bufferen er fyldt / skyllet. Det bruges sammen med strømindsættelsesoperatøren (<<).

Eksempel:

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

Produktion:

Her er et screenshot af koden:

Kode Forklaring:

  1. Herunder iostream header-fil, hvor tilstopningsobjektet er defineret.
  2. Inkluderet std navneområdet, så vi kan bruge dets klasser uden at kalde det.
  3. Ringer til hovedfunktionen (). Programmets logik skal tilføjes i dets krop. {Markerer begyndelsen på funktionens krop.
  4. Brug tilstoppningsobjektet til at udskrive en fejl på standardoutput, monitoren.
  5. Programmet skal returnere en værdi, når den er gennemført.
  6. Slutningen af ​​kroppen hovedfunktion ().

Fejlhåndtering med IO-streams:

For at kontrollere, om en stream er gyldig eller ej, kan du bruge den som en boolsk.

Her er et eksempel:

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

For at få flere detaljer om streamstatus kan du bruge disse funktioner:

  • god () - vender tilbage sandt, hvis alt er i orden.
  • dårlig () - vender tilbage sandt, hvis der opstår en fatal fejl.
  • fail () - returnerer true efter mislykket stream-operation.
  • eof () - returnerer true, hvis den når slutningen af ​​en fil.

For at vide, om en bestemt læse / skrive-operation mislykkedes, skal du teste læsningsresultatet.

For eksempel for at kontrollere, om brugeren har indtastet et gyldigt heltal, skal du gøre dette:

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

Resumé

  • Input- og outputopgaverne I C ++ udføres via bytesekvens. Bytes kaldes streams.
  • I en inputstrøm strømmer bytes fra inputenheden som et tastatur til hovedhukommelsen.
  • I en outputstrøm, bytes fra hovedhukommelsen til en outputenhed som en skærm.
  • Cin-objektet er en forekomst af istream-klassen. Den læser input fra en inputenhed som tastaturet.
  • Cout-objektet er en forekomst af ostream-klassen. Det producerer output på outputenheder som skærmen.
  • Cerr-objektet er en forekomst af ostream-klassen. Det viser fejlobjekter på skærmen.
  • Tilstopningsobjektet er forekomst af ostream-klassen. Det viser fejlmeddelelser på outputenheder.
  • Tilstopningsobjektet bufferer fejlmeddelelser, mens cerr-objektet ikke gør det.