[C] getchar() für Zahlen

  • Ersteller Ersteller Benji
  • Erstellt am Erstellt am
B

Benji

Gast
Hi!
ich suche ne Funktion für C die wie getchar() funktioniert aber nicht Zeichen sonder Zahlen einliest.
Wenn ich bei getchar einfach eine Zahl eingebe das nimt er aber den ASCII-Wert und nicht die eingegebene Zahl!
scanf() mit der Funktioniert es aber nicht!

mfg Benji
 
Du kannst chars in z.B einen int-Wert umwandeln mit der Funktion itoa.
Ansonsten kannst du auch mit scanf arbeiten, musst dann aber halt irgendeine Schleifengschichte verwenden und die Werte eben iterativ vom Benutzer erfragen.
 
kann es sein das du atoi meinst? ist zumindest das einzige wo ich was gefunden habe.
aber kannst du mir da mal die Syntax erklären hab mal folgendes ausprobiert:
Code:
#include <stdio.h>
#include <stdlib.h>

void main()
{
char a;
int b;
printf("%c", a);
b = atoi(a);
printf("%d",b);

}

da kommt aber folgender Fehler:

Code:
test.c: In Funktion »main«:
test.c:9: Warnung: Verarbeiten des Argumentes 1 von »atoi« erzeugt Zeiger von Ganzzahl ohne Typkonvertierung
test.c:5: Warnung: Rückgabetyp von »main« ist nicht »int«
 
Code:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    char a;
    int b;
    printf("Zahl eingeben");
    a = getchar();
    printf("%c\n", a);
    b = atoi(&a);
    printf("%d\n",b);
    system("PAUSE");	
    return 0;
}

Versuchs mal so.
atoi erwartet einen Zeiger, sprich eine Zeichenkette.
Und in der Regel macht man int main(..), nicht void main.
 
das funktioniert nur so lange du nur eine ziffer lesen willst.
machs lieber mit scanf:
int zahl:
scanf("%i",&zahl);

musst aber aufpassen, dass du vorher überzählige \n aus dem buffer entfernst...(wahrscheinlich hattest du das vergessen.)
 
wie entferne ich die aus dem Buffer?
An dem kann es liegen!

//edit
OK habs jetzt mit atoi() hinbekommen
Danke nochmal an alle
 
Zuletzt bearbeitet von einem Moderator:

Ähnliche Themen

Zurück
Oben