logo

Basisinvoer/uitvoer in C++

C++ wordt geleverd met bibliotheken die ons vele manieren bieden voor het uitvoeren van invoer en uitvoer. In C++ worden invoer en uitvoer uitgevoerd in de vorm van een reeks bytes, beter bekend als stromen .

  • Invoerstroom: Als de stroomrichting van de bytes van het apparaat (bijvoorbeeld toetsenbord) naar het hoofdgeheugen gaat, wordt dit proces invoer genoemd.
  • Uitvoerstroom: Als de richting van de bytesstroom tegengesteld is, dat wil zeggen van het hoofdgeheugen naar het apparaat (weergavescherm), wordt dit proces uitvoer genoemd.

Basisinvoer/uitvoer in C++



Headerbestanden die beschikbaar zijn in C++ voor invoer-/uitvoerbewerkingen zijn:

  1. iostream : iostream staat voor standaard input-outputstream. Dit headerbestand bevat definities van objecten zoals cin, cout, cerr, enz.
  2. iomanip : iomanip staat voor input-outputmanipulatoren. De methoden die in deze bestanden worden gedeclareerd, worden gebruikt voor het manipuleren van streams. Dit bestand bevat definities van setw, setprecision, etc.
  3. fstroom : Dit headerbestand beschrijft hoofdzakelijk de bestandsstroom. Dit headerbestand wordt gebruikt om de gegevens die uit een bestand worden gelezen als invoer te verwerken of om gegevens die als uitvoer naar het bestand worden geschreven, te verwerken.
  4. bits/stdc++: Dit headerbestand bevat elke standaardbibliotheek. Bij programmeerwedstrijden is het gebruik van dit bestand een goed idee, als je de tijd wilt verminderen die je verspilt aan het uitvoeren van klusjes; vooral als je rang tijdgevoelig is. Voor meer informatie over dit headerbestand raadpleegt u dit artikel.

In C++ gebruiken we na de headerbestanden vaak ‘ namespace std; gebruiken; ‘. De reden hierachter is dat alle standaardbibliotheekdefinities zich binnen de naamruimte std bevinden. Omdat de bibliotheekfuncties niet op mondiaal niveau zijn gedefinieerd, gebruiken we ze om ze te gebruiken naamruimte std . Zodat we niet STD:: op elke regel hoeven te schrijven (bijv. STD::cout etc.). Raadpleeg voor meer informatie dit artikel.

De twee exemplaren uit in C++ En cin in C++ van de iostream-klasse worden heel vaak gebruikt voor het respectievelijk afdrukken van uitvoer en het opnemen van invoer. Deze twee zijn de meest basale methoden voor het opnemen van invoer en het afdrukken van uitvoer in C++. Om cin en cout in C++ te gebruiken, moet je het headerbestand opnemen iostream in het programma.



In dit artikel worden voornamelijk de objecten besproken die in het headerbestand zijn gedefinieerd iostream zoals de cin en cout.

  • Standaard uitvoerstroom (cout) : Meestal is het standaarduitvoerapparaat het beeldscherm. De C++ uit statement is de instantie van de ostream-klasse. Het wordt gebruikt om uitvoer te produceren op het standaarduitvoerapparaat, meestal het beeldscherm. De gegevens die op het scherm moeten worden weergegeven, worden ingevoegd in de standaarduitvoerstroom (cout) met behulp van de invoegoperator( << ).

C++




os versus stier



#include> using> namespace> std;> int> main()> {> >char> sample[] =>'techcodeview.com'>;> >cout << sample <<>' - A computer science portal for geeks'>;> >return> 0;> }>

>

>

Uitgang:

techcodeview.com - A computer science portal for geeks>

Tijdcomplexiteit: O(1)
Hulpruimte: O(1)

In het bovenstaande programma is de invoegoperator( << ) voegt de waarde van de stringvariabele in steekproef gevolgd door de string Een computerwetenschappelijk portaal voor nerds in de standaarduitvoerstroom uit die vervolgens op het scherm wordt weergegeven.

  • standaard invoerstroom (cin) : Meestal is het invoerapparaat op een computer het toetsenbord. C++ cin-instructie is de instantie van de klasse stroom en wordt gebruikt om invoer te lezen van het standaardinvoerapparaat, meestal een toetsenbord.
    De extractie-operator ( >> ) wordt samen met het object gebruikt aan het eten voor het lezen van ingangen. De extractieoperator haalt de gegevens uit het object aan het eten die wordt ingevoerd met behulp van het toetsenbord.

C++




#include> using> namespace> std;> int> main()> {> >int> age;> >cout <<>'Enter your age:'>;> >cin>> leeftijd;> >cout <<>' Your age is: '> << age;> >return> 0;> }>

gelijkwaardigheid wetten

>

>

Invoer :

18>

Uitgang:

Enter your age: Your age is: 18>

Tijdcomplexiteit: O(1)
Hulpruimte: O(1)

Het bovenstaande programma vraagt ​​de gebruiker om de leeftijd in te voeren. Het object cin is verbonden met het invoerapparaat. De door de gebruiker ingevoerde leeftijd wordt uit cin gehaald met behulp van de extractieoperator( >> ) en de geëxtraheerde gegevens worden vervolgens opgeslagen in de variabele leeftijd aanwezig aan de rechterkant van de afzuigoperator.

  • Niet-gebufferde standaardfoutstroom (cerr) : De C++-cerr is de standaardfoutstroom die wordt gebruikt om de fouten uit te voeren. Dit is ook een exemplaar van de klasse iostream. Omdat cerr in C++ niet-gebufferd is, wordt het gebruikt wanneer de foutmelding onmiddellijk moet worden weergegeven. Er is geen buffer om de foutmelding op te slaan en later weer te geven.
  • Het belangrijkste verschil tussen cerr en cout komt wanneer je de uitvoer wilt omleiden met behulp van cout die wordt omgeleid naar een bestand. Als je cerr gebruikt, wordt de fout niet opgeslagen in het bestand. (Dit is wat niet-gebufferd betekent. Het kan de bericht)

C++

shweta tiwari-acteur




#include> using> namespace> std;> int> main()> {> >cerr <<>'An error occurred'>;> >return> 0;> }>

>

>

Uitgang:

An error occurred>

Tijdcomplexiteit: O(1)
Hulpruimte: O(1)

  • gebufferde standaardfoutstroom (verstopping) : Dit is ook een exemplaar van de ostream-klasse en wordt gebruikt om fouten weer te geven, maar in tegenstelling tot cerr wordt de fout eerst in een buffer ingevoegd en in de buffer opgeslagen totdat deze niet volledig is gevuld. of de buffer wordt niet expliciet leeggemaakt (met behulp van flush()). De foutmelding wordt ook op het scherm weergegeven.

C++


cdr volledige vorm



#include> using> namespace> std;> int> main()> {> >clog <<>'An error occurred'>;> >return> 0;> }>

>

>

Uitgang:

An error occurred>

Tijdcomplexiteit: O(1)
Hulpruimte: O(1)

gerelateerde artikelen :

  • cout << endl vs cout << in C++
  • Probleem met scanf() als er fgets()/gets()/scanf() achter staat
  • Hoe gebruik ik getline() in C++ als er lege regels in de invoer staan?
  • Cin-Cout versus Scanf-Printf