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++ Basisinvoer/uitvoer:Cout, Cin, Cerr Voorbeeld

Wat zijn streams in C++?

C++ biedt gebruikers een aantal bibliotheken die ze kunnen gebruiken om invoer-/uitvoertaken uit te voeren. Deze taken worden uitgevoerd in de vorm van bytereeksen, in de volksmond streams genoemd.

De streams zijn in tweeën verdeeld:

Soorten streams

  • Invoerstroom: Dit is een type stream waarbij de bytes van een apparaat zoals een toetsenbord naar het hoofdgeheugen stromen.
  • Uitvoerstream: Dit is een soort stroom waarbij de bytes in de tegenovergestelde richting stromen, dat wil zeggen, van het hoofdgeheugen naar het apparaat zoals het beeldscherm.

In deze C++ tutorial leer je:

  • Wat zijn streams in C++?
  • Hoe werken streams?
  • Functietabel
  • C++ Header-bestanden voor invoer/uitvoer
  • std::cout
  • std::cin
  • std::cerr
  • std::klomp
  • Foutafhandeling met IO-streams:

Hoe werken streams?

C++-streams werken als volgt:

  1. Eerst wordt een stream met het juiste type geïnitialiseerd.
  2. Vervolgens moet je aangeven waar de I/O zal plaatsvinden met behulp van get/put-pointers.
  3. Nadat u op de juiste locatie in een stream bent aangekomen, kunt u invoer- en uitvoertaken uitvoeren met respectievelijk>> en <<-operators.

Functietabel

Dit zijn de functies die in het stream.h-headerbestand worden geleverd:

Klasse Functies FilebufIt stelt bestandsbuffers in op lezen/schrijven. Het heeft close() en open() functies in itfstreambase. Het is de basisklasse voor de klassen ifstream, fstream en ofstream. De bewerkingen zijn gemeenschappelijk voor het bestand streams.ifstreamIt is een invoerbestandsstroomklasse voor het leveren van invoerbewerkingen.ofstreamIt is een uitvoerbestandsstroomklasse voor het leveren van uitvoerbewerkingen.fstreamHet is een invoer-/uitvoerstroomklasse. Het ondersteunt gelijktijdige invoer/uitvoer bewerkingen.

C++ Header-bestanden voor invoer/uitvoer

C++ biedt drie bibliotheken die worden geleverd met functies voor het uitvoeren van basisinvoer/uit-taken. Ze omvatten:

  • Iostream: Het is een acroniem voor standaard input/output stream. Dit headerbestand wordt geleverd met definities voor objecten zoals cin/cout/cerr.
  • Iomanip: Het is een acroniem voor input/output manipulators. De bibliotheek wordt geleverd met functies die kunnen worden gebruikt voor het manipuleren van streams. Het bevat definities voor objecten zoals setw, setprecision en andere.
  • Fstream: Dit is een headerbestand voor het beschrijven van de bestandsstroom. Het behandelt gegevens die uit een bestand worden gelezen als invoer of die naar een bestand worden geschreven, de uitvoer.

De trefwoorden cin en cout zijn erg populair in C++. Ze worden respectievelijk gebruikt voor het opnemen van invoer en het afdrukken van uitvoer. Om ze te gebruiken, moet u het iostream-headerbestand in uw programma opnemen. De reden is dat ze in dat headerbestand zijn gedefinieerd. Als u het iostream-headerbestand niet opneemt, wordt er een fout gegenereerd. Dit is het gevolg van een fout van de C++-compiler om de betekenis van de trefwoorden te begrijpen.

De belangrijkste objecten die in het iostream-headerbestand zijn gedefinieerd, zijn cin, cout, cerr en clog. Laten we ze bespreken.

std::cout

Het cout-object is een instantie van de klasse iostream. Het wordt gebruikt voor het produceren van uitvoer op een standaard uitvoerapparaat, dat normaal gesproken het scherm is. Het wordt samen met de stream-invoegoperator (<<) gebruikt.

Voorbeeld:

#include <iostream>
using namespace std;
int main() {

	char welcome[] = "Welcome to Guru99";

	cout << welcome << endl;

	return 0;
}

Uitvoer:

Hier is een screenshot van de code:

Code uitleg:

  1. Voeg het iostream-headerbestand toe waarin het cout-object is gedefinieerd.
  2. Neem de std-naamruimte op, zodat we deze niet hoeven aan te roepen als we de klassen ervan gebruiken.
  3. Roep de functie main() aan. De programmacode moet in de body worden toegevoegd. De openende accolade { markeert het begin van zijn lichaam.
  4. Maak een tekenvariabele met de naam welkom om de tekenreeks Welkom bij Guru99 vast te houden.
  5. Druk de waarde van de tekenreeks welkomst af op de console. De endl is een C++-sleutelwoord dat eindregel betekent. Het verplaatst de cursor om te beginnen met het afdrukken van tekst op de volgende regel.
  6. Het programma moet waarde retourneren bij succesvolle uitvoering.
  7. Einde van de hoofdtekst van de functie main().

std::cin

Het cin-object is een instantie van de istream-klasse. Het leest invoer van het invoerapparaat, het toetsenbord. Het wordt normaal gesproken samen met de extractie-operator gebruikt (>>). Het extractieobject is verantwoordelijk voor het extraheren van gegevens die via het toetsenbord zijn ingevoerd uit het cin-object.

Voorbeeld:

Het volgende voorbeeld laat zien hoe u het cin-sleutelwoord in C++ gebruikt:

#include <iostream>
using namespace std;
int main()
{
	int number;

	cout << "Enter a number:";
	cin >> number;
	cout << "\nYou entered: " << number;

	return 0;
}

Uitvoer:

Hier is een screenshot van de code:

Code uitleg:

  1. Neem het iostream-headerbestand op in ons programma. Het cin-object wordt gedefinieerd in dit headerbestand.
  2. Voeg de std-naamruimte toe om de klassen ervan te gebruiken. U hoeft std niet te bellen wanneer u zijn klassen gebruikt.
  3. Roep de functie main() aan. De programmacode moet in de body worden toegevoegd.
  4. De start van de hoofdtekst van het programma.
  5. Declareer een integer-variabele met de naam number.
  6. Druk een bericht op het scherm af waarin de gebruiker wordt gevraagd een nummer in te voeren.
  7. Lees de waarde die door de gebruiker op de console is ingevoerd vanaf het toetsenbord.
  8. Druk de hierboven gelezen waarde af op de console naast andere tekst.
  9. Het programma zou een waarde moeten retourneren als het succesvol wordt uitgevoerd.
  10. Einde van de hoofdtekst van de hoofdfunctie.

std::cerr

Het cerr-object vormt de standaardfoutstroom voor het uitvoeren van fouten in C++. Cerr is een instantie van de ostream-klasse. Het cerr-object is niet gebufferd. Dit betekent dat het wordt gebruikt wanneer een foutmelding onmiddellijk moet worden weergegeven.

Omdat het niet gebufferd is, slaat het geen foutmelding op voor een latere weergave. Het wordt samen met de stream-invoegoperator (<<) gebruikt.

Voorbeeld:

#include <iostream>
using namespace std;
int main() {

	cerr << "An Error occurred!";

	return 0;
}

Uitvoer:

Hier is een screenshot van de code:

Code uitleg:

  1. Voeg het iostream-headerbestand toe waarin het cerr-object is gedefinieerd.
  2. Neem de std-naamruimte op, zodat we deze niet hoeven aan te roepen als we de klassen ervan gebruiken.
  3. Roep de functie main() aan. De programmalogica moet in de body worden toegevoegd. De openende accolade markeert het begin van het lichaam van de functie.
  4. Gebruik het cerr-object om een ​​fout op de console af te drukken.
  5. Het programma moet een waarde teruggeven bij succesvolle uitvoering.
  6. Einde van de hoofdtekst van de hoofdfunctie.

std::klomp

Het clog-object is een instantie van de klasse ostream. Het wordt gebruikt om fouten op het standaarddisplay, de monitor, weer te geven. Het is vergelijkbaar met het cerr-object, maar het is gebufferd. Omdat het is gebufferd, slaat het de foutmelding op in de buffer totdat de buffer is gevuld / gespoeld. Het wordt samen met de stream-invoegoperator (<<) gebruikt.

Voorbeeld:

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

Uitvoer:

Hier is een screenshot van de code:

Code uitleg:

  1. Inclusief het iostream-headerbestand waarin het klompobject is gedefinieerd.
  2. Inclusief de std-naamruimte zodat we de klassen ervan kunnen gebruiken zonder deze aan te roepen.
  3. De functie main() aanroepen. De programmalogica moet in de body worden toegevoegd. De { markeert het begin van de hoofdtekst van de functie.
  4. Gebruik het klompobject om een ​​fout af te drukken op de standaarduitvoer, de monitor.
  5. Het programma moet een waarde retourneren na succesvolle voltooiing.
  6. Het einde van de hoofdtekst van de functie main().

Foutafhandeling met IO-streams:

Om te controleren of een stream geldig is of niet, kun je deze als Boolean gebruiken.

Hier is een voorbeeld:

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

Om meer details over de streamstatus te krijgen, kunt u deze functies gebruiken:

  • good()- zal true retourneren als alles in orde is.
  • bad()- zal true retourneren als er een fatale fout optreedt.
  • fail()- zal true retourneren na een mislukte streambewerking.
  • eof()- geeft true terug als het einde van een bestand bereikt.

Test het leesresultaat om te weten of een bepaalde lees-/schrijfbewerking is mislukt.

Om bijvoorbeeld te controleren of de gebruiker een geldig geheel getal heeft ingevoerd, doet u dit:

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

Samenvatting

  • De invoer- en uitvoertaken in C++ worden gedaan via bytereeks. De bytes worden streams genoemd.
  • In een invoerstroom stromen de bytes van het invoerapparaat als een toetsenbord naar het hoofdgeheugen.
  • In een uitvoerstroom gaan de bytes van het hoofdgeheugen naar een uitvoerapparaat zoals een monitor.
  • Het cin-object is een instantie van de istream-klasse. Het leest invoer van een invoerapparaat zoals het toetsenbord.
  • Het cout-object is een instantie van de klasse ostream. Het produceert uitvoer op uitvoerapparaten zoals de monitor.
  • Het cerr-object is een instantie van de klasse ostream. Het toont foutobjecten op de monitor.
  • Het clog-object is een instantie van de ostream-klasse. Het geeft foutmeldingen weer op uitvoerapparaten.
  • Het clog-object buffert foutmeldingen, terwijl het cerr-object dat niet doet.

C Taal

  1. C# Basisinvoer en -uitvoer
  2. C++ basisinvoer/uitvoer
  3. C Ingang Uitgang (I/O)
  4. Java basis invoer en uitvoer
  5. C++ Switch Case Statement met VOORBEELD
  6. C++ Exception Handling:Try, Catch, Throw Voorbeeld
  7. C++ Dynamische toewijzing van arrays met voorbeeld
  8. C++-structuur met voorbeeld
  9. D Vergrendeling
  10. C - Invoer en uitvoer
  11. C++ basissyntaxis