[C] nur eingabe von ganzahlen erlauben

korrekt deepthroat!

in deinem link steht ja das es ueber die scanf_s() funktion geht.
gibt es da auch eine kontrollabfrage ohne eine funktion.

irgend eine mathematische bedingung die ich in die while-schleife packen kann?
 
hast du meinen Code mal ausgeführt?
es werden nur ganze Zahlen akzeptiert (bzw natürliche Zahlen um korrekt zu bleiben)

Gruß,
kickerxy
 
hast du meinen Code mal ausgeführt?
es werden nur ganze Zahlen akzeptiert (bzw natürliche Zahlen um korrekt zu bleiben)
Dein Code akzeptiert eigentlich so ziemlich alles - egal ob es eine Zahl ist oder nicht.

Gib z.B. mal ein "a" ein.

\edit: ganz nebenbei funktioniert deine angestrebte Methode nicht allgemein.

Gruß
 
Zuletzt bearbeitet:
C:
long ausgangszahl;
char *e, s[20];
...
    do
    {

      errno = 1;
      if( fgets( s,20,stdin ) )
      {
        if( strchr(s,'\n') )
          s[strlen(s)-1]=0;
        else
          while( getchar()!='\n' );

        errno = 0;
        ausgangszahl = strtol( s,&e,10 );
      }
    }
    while ( errno || e==s || *e || ausgangszahl >= 200 || ausgangszahl < 0 );
So funktionierts plattformunabhängig mit long-Über/Unterlaufprüfung Leeren des Eingabepuffers.
 
Zurück