while() nach cin fragen
-
moin

mal angenommen ich schreibe..
int a; int x; int xx; while(cin>>a) { if(//eine bedingung^^) { //... } else if(//irgendetwas da da^^) { //... } else { //... } }ohne dabei auf die Kommentare usw.. zu schauen, ich möchte in while cin>>a machen,sodass wärend ich das eingebe,dass es auch so funktioniert,aber wie mache cih das am besten?
thx im voraus^^
wal.m.oo
-
Also so funktioniert das auf jeden Fall nicht. while() braucht ein Argument das entweder true oder false ist. D.h. du kannst entweder das cin>>a; vor die Schleife packen, und in den () das a gegen andere Werte prüfen, oder du kannst es in der Schleife machen und die Schleife while(true) machen was aber bedeutet das du in der Schleife irgendwo ein break; setzen must da sie sonst endlos wird. Wenn du jedoch nur ne if abfrage willst würde ich keine Schleife machen da sich das hier nicht lohnt.
-
wenn du nur die schleife durchlaufen willst, wenn du eine taste gedrückt hälst, musst du dafür wahrscheinlich was anderes als die stl benutzen, z.B: die win-api.
oder du meintest das so:int a = 1; while( a ) { cin >> a; // restl. code }//edit: oops, zu spät ...
mfg,
julian
-
Julian__ schrieb:
wenn du nur die schleife durchlaufen willst, wenn du eine taste gedrückt hälst, musst du dafür wahrscheinlich was anderes als die stl benutzen, z.B: die win-api.
oder du meintest das so:int a = 1; while( a ) { cin >> a; // restl. code }//edit: oops, zu spät ...
mfg,
julianwozu ?
while(cin>>a){ if(a == x) break; ... }das ist genau das gleiche -.-
-
Raven2 schrieb:
Also so funktioniert das auf jeden Fall nicht.
Und genau deswegen funktioniert der obige Code auch - istream::op>> liefert den Stream zurück (einerseits für Operator-Ketten, aber auch für solche Statusabfragen), der wiederum nach als bool (genauer void*) in if()- und while()-Bedingungen genutzt werden kann. Das bedeutet, die Schleife läuft so lange, wie gültige int-Werte eingegeben werden (danach wird das failbit von cin gesetzt und das setzt den Stream auf 'false').
@walross: Was genau meinst du mit "sodass wärend ich das eingebe,dass es auch so funktioniert"?
-
CStoll schrieb:
@walross: Was genau meinst du mit "sodass wärend ich das eingebe,dass es auch so funktioniert"?
das frag ich mich auch schon seit gestern,
kannst du mal etwas besser beschreiben ?
-
Schreib doch einfach
char x; do { cin >> x; }while(x!=BLA);