Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » feststellen ob int ungültig ist

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
01.08.2004, 18:07 Uhr
~Lesco
Gast


Wie kann ich feststellen ob ein eingelesenes int gültig ist?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
01.08.2004, 19:23 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Wie sollte es ungültig sein?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
01.08.2004, 19:28 Uhr
RedEagle



meinst du, wenn jemand bei

C++:
int test;
cin >> text;


ein "e" eingibt??

wen ja,

C++:
int zahl;
char eingabe;

cin >> eingabe;
if(eingabe >= 48 &&  eingabe <= 57) zahl = atoi(eingabe); //wenn eingabe eine zahl ist, wird die Zahl zur int-wariable weitergegeben



(Ich habe es nicht getestet und ich garantiere für nicht )
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
01.08.2004, 19:54 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


wenn, dann so:


C++:
int zahl;
char eingabe[81];

cin >> eingabe;
if(eingabe >= 48 &&  eingabe <= 57) zahl = atoi(eingabe); //wenn eingabe eine zahl ist, wird die Zahl zur int-wariable weitergegeben



--
class God : public ChuckNorris { };

Dieser Post wurde am 01.08.2004 um 22:19 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
01.08.2004, 20:16 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

wenn, dann so:


nein auch falsch, da eingabe nur ein zeiger ist...
wenns nur ein zeichen sein soll das überprüft werden soll obs ne zahl ist dann isdigit verwenden
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
01.08.2004, 22:19 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


falls es jedoch eine "vernünftige" zahl sein soll, also auch mehrstellig, dann würde ich es so machen, abprüfen ob wirklich das erste zeichen eine zahl ist, genügt, da atoi eh nur bis zum ersten vorkommen einer "nicht-zahl" umwandelt.
--
class God : public ChuckNorris { };

Dieser Post wurde am 01.08.2004 um 22:19 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
02.08.2004, 13:18 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@Flo Soft
Ich will schwer hoffen das du es nicht so machen würdest

C++:
if(eingabe >= 48 &&  eingabe <= 57)


in deinem beispiel ist eingabe ein zeiger... mal davon abgesehen das wenn schon isdigit plattformunabhäniger wäre ist die abfrage ob eigabe auf ne zahl zeigt die grösser als 48 und kleiner als 57 ist totaler blödsinn, wie dir jetzt auch hoffentlich einleuchtet...
du hast dich wohl von red eagles beispiel verwirren lasssen
also wenn schon nur das erste zeichen dann bitte den zeiger dereferenzieren...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
02.08.2004, 14:14 Uhr
~null_kenntnis
Gast


hallo
wollte nur mal einwerfen daß es nicht so klug is ASCII abhängig zu programmieren
würd sagen '0' und '9' is wenn du das so wie oben machen magst besser
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
02.08.2004, 14:34 Uhr
freshman



warum nicht einfach das failbit vom Eingabestrom abfragen?
Bsp mit cin

C++:
int num;
cin>>num;
if( cin.fail() ){
  //Fehlerbehandlung
}


--
freshman.say("Wer nicht an Wunder glaubt ist kein Realist!\a");
while(1)freshman.ask(sillyQuestion);
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


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: