Eingabe überprüfen?
-
Hi,
ich versuche meine ersten Gehversuche in C++. Das Programm nimmt solange Benutzereingaben per Kommandozeile an, bis Strg+D (=EOF) eingegeben wird.
So, meine Frage:
Wie überprüfe man das am besten?Strg+D entspricht ja dem ASCII Zeichen 4, aber wenn ich jetzt den Eingabestring in ein int konvertiere, erscheint mir das recht umständlich...?
Ich hoffe, Ihr könnt mir ein paar Tipps geben!
mfg,
soad
-
versuch' doch einfach, den Fehlerstatus von cin abzufragen (!cin.good() oder cin.eof()).
-
Danke, das kannte ich noch nicht.
Könnte man das eigentlich jetzt so schreiben?
#include <iostream> #include <string> using namespace std; int main() { string usrin; do { getline(cin, usrin); cout << usrin; } while(cin.eof()==false); }
-
Ja, kannst du (wobei das "==false" technisch unnötog ist ;))
-
mhhh...., aber müsste ich dann nicht !cin.eof() schreiben, weil die while-Schleife wird doch solange ausgeführt solange die Bedingung war ist, aber wenn ich nur cin.eof() schreibe wäre es ja die ganze Zeit falsch und erst dann wahr, wenn EOF erreicht ist?! Oder hab ich da einen Denkfehler?
-
Ja, genau (oder noch kürzer, du kannst sogar
do...while(cin)schreiben).
-
Ok danke
, wieder was gelernt
!