getchar() != '\n';
-
hi hab ein kleines problem, aber komme dennoch nicht weiter!
char test; while(1) { test=getchar(); if(test=='\n') break; putchar(test); }
er springt auch aus der schleife , jedoch immer mit dem kompletten output.
ich hab quasi die zeichen 2x auf dem bildschirm BEI enter.Output:
eingabe
eingabewie kann ich das verhindern?
-
Das putchar rausnehmen?
-
_matze schrieb:
Das putchar rausnehmen?
habs jetzt abgeändert
while(1) { if(index==19) { gotoxy(0,23); cout << "ERROR nur 20 Zeichen erlaubt!!!"; break; } test=getchar(); if(test=='\n') break; index++; }
allerdings bleib ich irgendwie in dem getchar(); sprich erst wenn ich ENTER drücke kommt die meldund ERROR..
-
Wenn du eine gedrückte Taste direkt validieren willst, musst du dir mal _kbhit (conio.h) angucken.
Sowas in der Art (nur schnell dahingeschludert ):
char test; int index=0; while(1) { while(!_kbhit()); test=_getche(); if(test=='\n' || test=='\r') { break; } if(index++>=19) { std::cout << "ERROR nur 20 Zeichen erlaubt!!!"; break; } }
-
while(!_kbhit());
??? versteh ich net
-
rubooo schrieb:
while(!_kbhit());
??? versteh ich net
Das heißt "warte, solange keine Taste gedrückt wird" (sieh dir die Doku zu _kbhit auch mal an).
-
logisch danke. ok hat gut geklappt allerdings liest er momentan nur ein zeicen ein
-
rubooo schrieb:
logisch danke. ok hat gut geklappt allerdings liest er momentan nur ein zeicen ein
Hm, dann machst du noch irgendwas falsch. Zeig mal deinen Code.
-
habs anderst gemacht.
index=0 while(1) { test=_getche(); if(test=='\n' || test=='\r') break; if(index++>=19) { gotoxy(0,23); cout << "ERROR nur 20 Zeichen erlaubt!!!"; break; } }
klappt super jetzt.
vielen dank
-
wie speicherst du die eingabe? oder brauchst du die nicht?
-
Und immer dran denken: Für Sondertasten wie z.B. die Pfeiltasten, werden 2 'Tasten' gesendet. Erst die 0, dann die Zahl für die Taste