Ich programmiere seit einigen Tagen einen Tastaturtreiber für meinen Kernel.
Jetzt versuche ich eine Funktion zur Eingabe von Integern zu schreiben:
int getn()
{
int ziffer_1 = getchar() - 48;
int ziffer_2 = getchar() - 48;
int ziffer_3 = getchar() - 48;
int zahl;
if(ziffer_1 < 0 || ziffer_1 > 9 || ziffer_2 < 0 || ziffer_2 > 9 || ziffer_3 < 0 || ziffer_3 > 9)
{
zahl = -1;
}
else
{
zahl = ziffer_1 * 100 + ziffer_2 * 10 + ziffer_3 * 1;
}
return zahl;
}
Diese Funktion funktioniert ganz gut, doch wie man sieht wird man bei der Eingabe dazu "gezwungen" Zahlen mit drei Ziffern einzugeben.
Mir fällt keine andere Lösung ein, als für jede Ziffer eine Eigene Variable anzulegen, die würde den Code jedoch sehr lang und unschön machen.
Kennt jemand hier eine schönere Lösung für mein Problem?