Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Eingabe darf nur eine zahl sein (C++)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.01.2005, 18:21 Uhr
~Negr0-Robert S.-
Gast


Der Betreff sagt eigendlich schon fast alles, ich will das der User zu einer Eingabe aufgefordert wird, die Eingabe ist dan eine Zahl zwischen 1 und 8, was ich will ist denkbat einfach, ich will das der User nur Zahlen eingeben kann da das ganze dann in einer Zahlenvariable gespeichert wird und ansonsten natuerlich die Application abschmiert. Nun weis ich das ich mir die eingabe einfach via getchar("Variable"); in den ASCII code umwandeln kann, nur ist das ziehmlich muesaehlig da ich dann noch eine Funktion schreiben muss welche die Eingabe ueberprueft. Meine Frage ist nun ob es eine einfachere, schnellere und elleganter Methode gibt.

Also dann schiest mal los
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.01.2005, 18:36 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


scanf liefert dir die anzahl der eingelesen werte zurück... wenn da entsprechend 0 rauskommt weil du nen buchstaben eingegeben hast weisst du das es keine zahl war...

an sonsten kannst du auch einfach ein char einlesen und mit isdigit checken ob es eine einstellige ziffer ist...

allerdinges weiss ich nicth was du gegen die lösung mit erst als string einlesen und dann gucken ob da nen valider ausdruck drinsteht hast... ist nur wenig mehraufwand und relativ leicht zu lösen indem du den string halt nach dem erlaubten druchgehst und im fall des falles eine meldung an den user ausgibst...
wenn der string passt kannst du dann z.b. atoi verweden....

in deinem speziellen fall könntest du auch gleich als string einlesen und
sowas verwenden

C++:
if(atoi(input)<1 || atoi(input))>8 )// fehler schmeissen


da atoi im fall das keine verwertbare zahl drin steht 0 zurückliefert (was schlecht ist wenn man die 0 als zahl braucht aber die sache vereinfacht wenn man sie nicht braucht...)
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: