Werken met cin en cout

Home / Programmeren / Cplusplus / Cin en cout

We gaan in de tutorial de objecten cin en cout bespreken, welke je nodig hebt om invoer van de commandoregel te kunnen krijgen en tekst naar de commandoregel te sturen. Je hebt in de vorige tutorial al even kennis gemaakt met cout. Je hebt gezien dat je met << tekst in cout kunt stoppen en dat je met endl naar de volgende regel kunt springen. We gaan hier nu mee verder door te werken met variabelen die tekst kunnen bevatten, strings. Om hiermee te kunnen werken moet de functiebibliotheek string oproepen. Dit komt er zo uit te zien.

#include <iostream>
#include <string>
using namespace std;

int main()
{ cout << "Deze tekst komt op het scherm!" << endl;
return 0;
}

Zoals je ziet is er een regel bijgekomen, #include <string>. Deze zorgt ervoor dat de functiebibliotheek string wordt toegevoegd aan het programma. We gaan nu een tekenreeks-variabele (een string dus) met de naam eenstuktekst toevoegen. Daarna stoppen we wat tekst in deze string en zetten we deze met cout op het scherm.

#include <iostream>
#include <string>
using namespace std;

int main()
{ string eenstuktekst;
eenstuktekst = "Deze tekst zit in de variabele!";
cout << eenstuktekst << endl;

return 0;
}

Als je dit compileert en het programma start zou de tekst Deze tekst zit in de variabele! op je scherm moeten verschijnen. Zoals je kunt zien werkt C++ niet met een sleutelwoord zoals var of een speciaal teken om een variabele aan te duiden. C++ is een sterk getypeerde taal, wat wil zeggen dat je voor elk soort invoer een aparte variabele hebt. Je kunt dus echt geen tekst in een getal-variabele zetten. Om de variabele eenstuktekst te maken hoef je alleen maar string eenstuktekst; neer te zetten. Het sleutelwoord string geeft aan dat er een nieuwe tekst-variabele wordt gemaakt.

Cin

We gaan het nu over invoer hebben. Je kunt namelijk ook het een en ander aan de gebruiker vragen in C++. Dit kan met cin. Hiervoor moet je eerst een string-variabele aanmaken en er daarna met cin tekens in stoppen. Dit gaat als volgt:

#include <iostream>
#include <string>
using namespace std;

int main()
{ string eenstuktekst;
cout << "Welkom! Voer eens wat tekst in!" << endl;
cin >> eenstuktekst;
cout << "He! Je voerde " << eenstuktekst << " in!" << endl;

return 0;
}

Als je dit programma compileert en uitvoert zul je zien dat alles wat je invoert tot de eerste spatie in de variabele eenstuktekst terecht komt en op het scherm terugkomt. Zoals je ziet werken we hier weer met 2 punthaakjes, maar nu de andere kant op. Dit symboliseert dat er data vanuit cin naar de variabele gaat.

Vaak wil je alleen de data tot en met de eerste spatie hebben, maar een hele regel. Met de functie getline() kun je een hele regel in een variabele stoppen. Dit doe je zo:

#include <iostream>
#include <string>
using namespace std;

int main()
{ string eenstuktekst;
cout << "Welkom! Voer eens wat tekst in!" << endl;
getline(cin, eenstuktekst);
cout << "He! Je voerde " << eenstuktekst << " in!" << endl;

return 0;
}

In dit stukje code wordt met getline via cin een regel tekst in eenstuktekst gestopt. Als je dit compileerd en uitvoert zul je zien dat het werkt.

Ok, genoeg over cin en cout, op naar de volgende tutorial!