[C] nur eingabe von ganzahlen erlauben

S

scsved

Hallo,

Ich möchte eine zahl eingeben welche nur eine ganzzahl sein darf keine gleitkommazahl.
wie kann ich das coden?
 
int ausgangszahl;

do
{
printf("Gib eine beliebe positive Ganzahl kleiner 200 ein: ");
scanf("%d", &ausgangszahl);
if (ausgangszahl == 0)
{
break;
}
}
while ((ausgangszahl >= 200) || (ausgangszahl < 0));


Frage:
wenn ich hier nun eine gleitkommazahl eingebe zB 22.8 rechnet er trotzdem weiter ich will aber nur ganzezahlen zulassen.
 
er wird dann in dem Fall mit 22 rechnen.
Ich würde es so realisieren:
C++:
float tmp;
do
{
cout << "Beliebige Zahl kleiner 200: ";
cin >> tmp;
}while(tmp != ((int)tmp) || tmp < 0 || tmp > 199);

Gruß,
kickerxy
 
Zuletzt bearbeitet:
sollte so funktionieren:
C:
float tmp;
do
{
printf("Beliebige Zahl kleiner 200: ");
scanf("%f", &tmp);
}while(tmp != ((int)tmp) || tmp < 0 || tmp > 199);
 
@kickerxy123: ich glaube du hast die Frage nicht wirklich verstanden.

@scsved: Siehe den Link den ich dir gegeben habe. (\edit: hab den Link berichtigt)
 
wieso habe ich die Frage nicht verstanden?
Er will, dass der benutzer eine Zahl zwischen 0 und 200 eingibt, die keine Nachkommastellen hat. Genau das macht meine Funktion.
Man könnte dann noch
C:
unsigned short ausgangszahl = (int)tmp;
machen. Aber dieser Thread ist wohl eh überflüssig geworden (vgl andere parallele Thread).
 
Zurück