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,
dankelg 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