User soll nur Zahlen eingeben dürfen
-
ich gehe von aus das die stellen der zahl nicht bekannt sind oder `?
-
nein die stellen sind nicht bekannt, aber es war so wie ich es mir dachte: nachdem ich z.B. 1234sdf eingegeben habe, wird sdf zwar ignoriert, bleibt aber trotzdem im eingabepuffer. deshalb wollte ich wissen wie ich den leere.
Danke klappt jetzt wunderbar.@Swordfish: deine Lösung (also mit read_number ()) hatte auch geklappt, sogar noch besser allerdings bin ich irgendwie unfähig strings in ints umzuwandeln...
-
Guckst Du:
C/C++ Forum :: FAQ - C++ :: Einmal Zahl nach String und zurückgreetz, Swordfish
-
hab schon weill alles nicht

deshalb mein ich ja, ich bin zu blöd dafür aber ich mach mich nochmal ran jetzt
-
Brusko schrieb:
ich gehe von aus das die stellen der zahl nicht bekannt sind oder `?
davon kann man i.d.R. ausgehen, es sei denn man kann hellseherprogramme schreiben

*fg*Fake oder Echt schrieb:
bin ich irgendwie unfähig strings in ints umzuwandeln...
dafür gibts doch atoi. guckst du bei <-dadda:

#include <limits.h> char input[64]; int i=0; while ( isdigit(input[i++] = getche()) ) { if ( strtod( input, NULL ) > INT_MAX ) { puts("touch too much!"); return 1; } } if ( input[--i] != 13 ) puts("\npfui !!!"); else printf("input: %d\n", atoi(input)); // <-dadda !
-
joa naja für char arrays gehts aber nicht für strings

aber ich habs jetzt endlich hingekriegt (zumindest fast :D)
musste bei swordfish' lösung das _getch () vom anfang in eine for-schleife reinhauen, weil sonst kleine puffer entstanden zwischen den eingaben (also so leereingaben) sieht jetzt so aus:string read_number () { string input; int ch; for (ch = _getch (); ch != '\r'; ch = _getch ()) { if (isdigit (ch)) { input += ch; putch (ch); } } putch (ch); return input; }jetzt wird aber beim sofortigen enter drücken eine zufallszahl eingesetzt, wenn eben nichts drin steht, das muss ich noch i-wie wegbekommen

-
zu spät *g*
-
Fake oder Echt schrieb:
joa naja für char arrays gehts aber nicht für strings

string str("123"); cout << atoi(str.c_str());hihihi
-
*sich pfanne nehm und auf kopf hau*
ok danke, wie schön, dass ich das andauernd hier i-wo sehe aber im ernstfall es nicht finde
naja das andere bleibt noch mal sehn was sich da ergibt
edit: sehr schön, dadurch konnte ich mir auch sstream sparen, d.h 28 kb weniger *g*
-
ehm und was passiert, wenn in str keine Zahl steht? (Tipp: 0 wird ausgegeben!)