TI-S2 • Software (C++)
Gera Pronk
cin gebruikengetlineProgramma’s worden nuttig zodra ze gebruikersinvoer verwerken:
toetsenbord → variabelen → berekening/actie.
We focussen op console-invoer in C++.
cin in één slidecout << ...cin >> variable;>>)Voorbeeld:
#include <iostream>
using namespace std;
int main() {
int n_tables;
cout << "Enter number of tables in the room: ";
cin >> n_tables;
int total_legs = n_tables * 4;
cout << "There are " << total_legs << " table legs.";
}
Gebruik #include <iostream> voor zowel cout als cin.
Soms zie je ook #include <string> wanneer je met strings werkt.
cin splitst automatisch op spaties en enters.
Handig om meerdere waarden achter elkaar te lezen.
Voorbeeld:
#include <iostream>
using namespace std;
int main() {
float price;
int quantity;
cout << "Enter price and quantity: ";
cin >> price >> quantity;
float total_price = price * quantity;
cout << "Total price: " << total_price << "";
}
cin onhandig wordtcin >> s stopt bij eerste spatie → rest gaat verloren.Oplossing: getline voor volledige regels.
getline(cin, stringVar)Voorbeeld:
#include <iostream>
#include <string>
using namespace std;
int main() {
string sentence;
cout << "Enter a sentence:";
getline(cin, sentence);
int count = 0;
for (unsigned int i = 0; i < sentence.size(); i++) {
if (sentence[i] == ' ') { count++; }
}
cout << "The sentence contains " << count << " spaces";
}
cin + getlinecin >> x; blijft er vaak een newline (``) in de buffer.getline leest dan een lege regel.Oplossing:
Negeer alle karakters tot de volgende newline.
Specifieker: negeer het maximum aantal mogelijke karakters tot de newline.
(We gaan nu niet dieper in op numeric_limits.)
cin.ignore(numeric_limits<streamsize>::max(), '\n');
Of: Negeer álle karakters in de stream.
cin.ignore(numeric_limits<std::streamsize>::max());
cin.fail() gebruiken om te controleren of de invoer ‘goed’ was.cin.clear() de foutstatus ongedaan maken.#include <iostream>
#include <limits>
using namespace std;
int main() {
int n;
cout << "Enter an integer: ";
while (!(cin >> n)) {
cout << "Not an integer. Try again: ";
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
cout << "You entered: " << n << "";
}
#include <iostream> (en <string> bij strings)cin >> a >> b;getline(cin, s);cin >> vóór getline → cin.ignore(...)cin.fail()