C++ Grunnleggende input/output: Cout, Cin, Cerr Eksempel
โก Smart oppsummering
C++ Input- og output-operasjoner er avhengige av strรธmobjekter som flytter data som bytesekvenser mellom programmer og enheter, med cin som leser tastaturinndata og cout, cerr og clog som skriver utdata til skjermen.

Hva er Streams i C++?
C++ gir brukerne en rekke biblioteker som de kan bruke til รฅ utfรธre input/output-oppgaver. Disse oppgavene gjรธres i form av bytesekvenser, populรฆrt kalt streams.
Strรธmmene er delt i to:
Typer bekker
- Inndatastrรธm: Dette er en type strรธm der bytene flyter fra en enhet som et tastatur til hovedminnet.
- Utdatastrรธm: Dette er en type strรธm der bytene flyter i motsatt retning, det vil si fra hovedminnet og deretter til enheten som skjermen.
Hvordan fungerer strรธmmer?
C++ strรธmmer fungerer som fรธlger:
- Fรธrst initialiseres en strรธm med riktig type.
- Deretter bรธr du angi hvor I/O-en vil skje ved hjelp av get/put-pekere.
- Etter รฅ ha kommet til riktig plassering i en strรธm, kan du utfรธre inndata- og utdataoppgaver ved รฅ bruke henholdsvis >> og << operatรธrer.
Funksjonstabell
Fรธlgende er funksjonene i stream.h-headerfilen:
| Klasse | Funksjoner |
|---|---|
| Filebuf | Den setter filbuffere for รฅ lese/skrive. Den har close() og open() funksjoner i seg |
| fstreambase | Det er basisklassen for klassene ifstream, fstream og ofstream. Dens operasjoner er felles for filstrรธmmene. |
| ifstream | Det er en inndatafilstrรธmklasse for รฅ gi inndataoperasjoner. |
| av strรธmmen | Det er en utdatafilstrรธmklasse for รฅ gi utdataoperasjoner. |
| fstream | Det er en input/output stream-klasse. Den stรธtter samtidige input/output-operasjoner. |
C++ Header-filer for Input/ Output
C++ gir tre biblioteker som kommer med funksjoner for รฅ utfรธre grunnleggende input/out-oppgaver. De inkluderer:
- Iostream: Det er et akronym for standard input/output stream. Denne overskriftsfilen kommer med definisjoner for objekter som cin/cout/cerr.
- Iomanip: Det er et akronym for input/output manipulatorer. Biblioteket kommer med funksjoner som kan brukes til รฅ manipulere strรธmmer. Den inneholder definisjoner for objekter som setw, setprecision og andre.
- Fstream: Dette er en overskriftsfil for รฅ beskrive filstrรธmmen. Den hรฅndterer data som leses fra fil som input eller som er skrevet til en fil, output.
Nรธkkelordene cin og cout er veldig populรฆre i C++. De brukes til รฅ ta henholdsvis inndata og utskrifter. For รฅ bruke dem mรฅ du inkludere iostream header-fil i programmet. ร rsaken er at de er definert i den overskriftsfilen. Unnlatelse av รฅ inkludere iostream-headerfilen vil generere en feil. Dette skyldes en fiasko fra C++ kompilator for รฅ forstรฅ betydningen av sรธkeordene.
Hovedobjektene som er definert i iostream-headerfilen er cin, cout, cerr og clog. La oss diskutere dem.
std::cout
Cout-objektet er en forekomst av iostream-klassen. Den brukes til รฅ produsere utdata pรฅ en standard utenhet, som vanligvis er skjermen. Den brukes sammen med strรธminnsettingsoperatoren (<<).
Eksempel
#include <iostream> using namespace std; int main() { char welcome[] = "Welcome to Guru99"; cout << welcome << endl; return 0; }
Utgang:
Her er et skjermbilde av koden:
Code Forklaring:
- Inkluder iostream-header-filen der cout-objektet er definert.
- Inkluder std-navneomrรฅdet slik at vi ikke trenger รฅ kalle det nรฅr vi bruker klassene.
- Kalle hoved()-funksjonen. Programkoden skal legges til i hoveddelen. Den krรธllete รฅpningen { markerer begynnelsen av kroppen.
- Opprett en tegnvariabel med navnet welcome for รฅ holde strengen Velkommen til Guru99.
- Skriv ut verdien av velkomststrengen pรฅ konsollen. Endl er en C++ nรธkkelord som betyr sluttlinje. Den flytter markรธren for รฅ begynne รฅ skrive ut tekst pรฅ neste linje.
- Programmet mรฅ returnere verdi ved vellykket utfรธrelse.
- Slutten av hoveddelen av funksjonen main().
std::cin
cin-objektet er en instans av istream-klassen. Det leser input fra inndataenheten, tastaturet. Det brukes vanligvis sammen med ex.tracsjonsoperatoren (>>). Eks.tracsjonsobjektet er ansvarlig for ekstracdata som er skrevet inn via tastaturet fra cin-objektet.
Eksempel
Fรธlgende eksempel viser hvordan du bruker nรธkkelordet cin i C++:
#include <iostream> using namespace std; int main() { int number; cout << "Enter a number:"; cin >> number; cout << "\nYou entered: " << number; return 0; }
Utgang:
Her er et skjermbilde av koden:
Code Forklaring:
- Inkluder iostream-headerfilen i programmet vรฅrt. cin-objektet er definert i denne overskriftsfilen.
- Inkluder std-navneomrรฅdet for รฅ bruke klassene. Du trenger ikke รฅ ringe std nรฅr du bruker klassene.
- Kalle hoved()-funksjonen. Programkoden skal legges til i hoveddelen.
- Starten pรฅ hoveddelen av programmet.
- Erklรฆre en heltallsvariabel navngitt nummer.
- Skriv ut en melding pรฅ skjermen som ber brukeren om รฅ angi et nummer.
- Les verdien angitt av brukeren pรฅ konsollen fra tastaturet.
- Skriv ut verdien som er lest ovenfor pรฅ konsollen sammen med annen tekst.
- Programmet skal returnere en verdi hvis det kjรธres vellykket.
- Slutten av kroppen av hovedfunksjonen.
std::cerr
cerr-objektet danner standard feilstrรธm for utmating av feil i C++. Cerr er en forekomst av ostream-klassen. Cerr-objektet er ubuffret. Dette betyr at den brukes nรฅr en feilmelding skal vises umiddelbart.
Siden den ikke er bufret, lagrer den ikke feilmeldinger for en senere visning. Den brukes sammen med strรธminnsettingsoperatoren (<<).
Eksempel
#include <iostream> using namespace std; int main() { cerr << "An Error occurred!"; return 0; }
Utgang:
Her er et skjermbilde av koden:
Code Forklaring:
- Inkluder iostream header-fil der cerr-objektet er definert.
- Inkluder std-navneomrรฅdet slik at vi ikke trenger รฅ kalle det nรฅr vi bruker klassene.
- Kalle hoved()-funksjonen. Programlogikken bรธr legges til i hoveddelen. Den krรธllete รฅpningen markerer begynnelsen av funksjonens kropp.
- Bruk cerr-objektet til รฅ skrive ut en feil pรฅ konsollen.
- Programmet mรฅ returnere en verdi ved vellykket utfรธrelse.
- Slutten av kroppen av hovedfunksjonen.
std::tette
Clog-objektet er en forekomst av ostream-klassen. Den brukes til รฅ vise feil pรฅ standardskjermen, skjermen. Det ligner pรฅ cerr-objektet, men det er bufret. Siden den er bufret, lagrer den feilmeldingen i buffer til bufferen er fylt/tรธmt. Den brukes sammen med strรธminnsettingsoperatoren (<<).
Eksempel
#include <iostream> using namespace std; int main() { clog << "An Error occurred!"; return 0; }
Utgang:
Her er et skjermbilde av koden:
Code Forklaring:
- Inkludert iostream header-filen der clog-objektet er definert.
- Inkludert std-navneomrรฅdet slik at vi kan bruke klassene uten รฅ kalle det.
- Kaller opp hoved()-funksjonen. Programlogikken bรธr legges til i hoveddelen. { markerer begynnelsen av funksjonens hoveddel.
- Bruk tetteobjektet til รฅ skrive ut en feil pรฅ standardutgangen, skjermen.
- Programmet mรฅ returnere en verdi ved vellykket gjennomfรธring.
- Slutten av hoveddelen av funksjonen main().
Feilhรฅndtering med IO-strรธmmer
De samme strรธmobjektene rapporterer ogsรฅ om en operasjon var vellykket, noe strรธmtilstandssjekker avslรธrer.
For รฅ sjekke om en strรธm er gyldig eller ikke, kan du bruke den som en boolsk.
Her er et eksempel:
ifstream file( "myfile.txt" ); if ( ! file ) { cout << "File NOT opened!" << endl; }
For รฅ fรฅ mer informasjon om strรธmstatusen kan du bruke disse funksjonene:
- good()- returnerer sant hvis alt er i orden.
- bad()- vil returnere true hvis det oppstรฅr en fatal feil.
- fail()- vil returnere sann etter mislykket strรธmoperasjon.
- eof()- vil returnere sant hvis den nรฅr slutten av en fil.
For รฅ vite om en bestemt lese-/skriveoperasjon mislyktes, test leseresultatet.
For eksempel, for รฅ sjekke om brukeren har skrevet inn et gyldig heltall, gjรธr du dette:
int p; if ( cin >> p ) { cout << "Enter valid number" << endl; }




