Von stdin Zahlen lesen



  • Hallo, quäl mich gerade mit semaphoren unter linuxprogrammierung.
    Hab ein einfaches problem: möchte eine Zahl einlesen von stdin und gehe wie folgt vor:

    int c;

    c= fgetc(stdin);

    doch das liefert mir nie das gewünschte resultat, was mache ich falsch ?

    PS: scanf wäre einfach, darf aber leider nicht verwendet werden.

    bin glücklich für jede Hilfe,
    danke

    lg reinhard



  • IIRC ist das richtig. Was heißt denn "nicht das gewünschte Resultat"?



  • naja nachfolgender code

    while (!feof(stdin))
    {

    if (P(nSem1ID) == -1)
    {
    BailOut("Cannot P semaphore");
    }
    printf("Bitte Zahl eingeben: ");
    c = fgetc(stdin);
    printf("HALLLLLLOOOOO %d",c);

    }

    wenn ich jetzt zum beispiel 6 eingebe auf stdin, bekomme ich 10 heraus ? wie ist das möglich ?



  • @Reinhard:
    Wenn du mit fgetch etwas einliest, dann bekommst du den character-wert des ASCII-Codes zurück! für a ist das 97 und für die 1 wäre as eine 49.

    Wenn du also eingelesen hast, kannst du ja den Rückgabewert mit 48 subtrahieren und dann kommst du auf dein richtiges Ergebnis


Anmelden zum Antworten