cin.get() --> Eingabe wiederholen bis #
-
Hallo zusammen,
brauche dringend Hilfe zum folgenden Problem:ich muss verschiedene Daten vom Benutzer einlesen, solange er nicht ein bestimmtes Zeichen eingibt in diesem Fall '#'. ich habe etwas versucht aber er funkt nicht wie ich das haben möchte!
while( cin.get() != '#') { cout << "Name: "; cin >> name; cout << "Reihe: "; cin >> row; cout << "Sitzplatz: "; cin >> letter; Seat seat1( row, letter, name ); }So soll das aussehen im Fenster!
Name(# zum Beenden): Hans
Reihe: 8
Sitzplatz: D
Name(# zum Beenden): Anton
Reihe: 1
Sitzplatz: F
Name(# zum Beenden): Dieter
Reihe: 8
Sitzplatz: C
Name(# zum Beenden): #
-
cout << "So soll das aussehen im Fenster!\n\n"; std::string name, row, letter; do { cout << "\nName(# zum Beenden): "; cin >> name; if (name != "#") { cout << "\nReihe: "; cin >> row; cout << "\nSitzplatz: "; cin >> letter; Seat seat1(row, letter, name); } } while(name != "#");Gruss
Cartman
-
danke Cartman,
das hat funktioniert. hatte es mittlerweile mit system("Pause") versucht!
vielen dank - nachhinein scheint das ja richtig einfach aus!und nochwas........ cool signature
-
aetbaar_444 schrieb:
danke Cartman,
das hat funktioniert. hatte es mittlerweile mit system("Pause") versucht!
vielen dank - nachhinein scheint das ja richtig einfach aus!Kein Problem

Die Loesung ist meistens (fast immer) einfacher als man glaubt.
Aber wie kommt man denn auf system("pause")?
Aber trotzdem was dazu: Versuche system-Befehle zu vermeiden, da diese sehr langsam sind. Ausserdem gibt es unter C++ immer eine bessere Alternativen. das system("pause") koennte man z.B. so realisieren (ist dann aber genau wie system("pause") auch plattformabhaengig):oben
#include <conio.h>weiter unten
cout << "Beliebige Taste druecken, um fortzufahren..."; _getch(); // die Funktion wartet, bis irgendeine Taste auf der Tastatur // eingegeben wurde - das ganze ohne echo wie bei "pause"und nochwas........ cool signature
Danke
Gruss
Cartman
-
... und
_getch();ist natürlich schönes Standard-C++ ...
cheers, Swordfish
-
danke für den hinweis ( system....)
super forum - absolut kompetent.mfg
aetbaar_444
-
Swordfish schrieb:
... und
_getch();ist natürlich schönes Standard-C++ ...
cheers, Swordfish
Bitte zuerst lesen, bevor man so einen (unnoetigen) Kommentar ablaesst. Ich habe in meinem Beitrag erwaehnt, dass es plattformabhaengig ist (wie auch system("pause")).
Gruss
Cartman
-
Eric Cartman schrieb:
Bitte zuerst lesen, bevor man so einen (unnoetigen) Kommentar ablaesst. Ich habe in meinem Beitrag erwaehnt, dass es plattformabhaengig ist (wie auch system("pause")).
Du hast aber auch das folgende geschrieben:
Eric Cartman schrieb:
Ausserdem gibt es unter C++ immer eine bessere Alternativen.
Wieso gibst du dann nicht gleich eine richtige C++ Lösung an?
conio.hist höchstens eine C Lösung, aber auch in C kein Standard. Am besten wäre aber auch einfach dieser Link gewesen, der erledigt die ganze Arbeit:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html
Grüssli
-
Dravere schrieb:
Eric Cartman schrieb:
Bitte zuerst lesen, bevor man so einen (unnoetigen) Kommentar ablaesst. Ich habe in meinem Beitrag erwaehnt, dass es plattformabhaengig ist (wie auch system("pause")).
Du hast aber auch das folgende geschrieben:
Eric Cartman schrieb:
Ausserdem gibt es unter C++ immer eine bessere Alternativen.
Wieso gibst du dann nicht gleich eine richtige C++ Lösung an?
conio.hist höchstens eine C Lösung, aber auch in C kein Standard. Am besten wäre aber auch einfach dieser Link gewesen, der erledigt die ganze Arbeit:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-111042.html
Grüssli
Touché.
-
Danke Davere.

cheers, Swordfish
PS: Eine Möglichkeit, auf einen beliebigen Tastendruck zu warten gibt's in C++ sowieso nicht.
-
- Mit Mitteln der Standardbibliothek ist es nicht möglich auf einen *beliebigen* Tastendruck zu warten
Genau deswegen habe ich _getch vorgeschlagen, um den Dos-pause-Befehl perfekt zu imitieren, denn bei cin.get() wird noch auf ein ENTER gewartet und eben nicht auf eine beliebige Taste.
Aber der Link ist gut

Gruss
Cartman