Integerwert einlesen mit getch()



  • Hallo Leute, habe folgendes Problem:

    möchte mit getch() eine Tastatureingabe einlesen (Wahlweise 1,2,3,4). Sieht dann so aus:

    AEingabe[i]=getch();
    

    So erhalte ich immer die ASCII-Werte ...
    also Tastatureingabe 1 => AEingabe[] = 49...

    Ich hätte aber gerne, dass ich irgendwie anstatt der ASCII-Codes direkt die Zeichen zugewiesen kriege, weil AEingabe nachher mit einem anderen Array verglichen wird.

    Vielen Dank schon mal...



  • zieh doch einfach das zeichen '0' ab.



  • zeichen werden in c durch ihre ascii-codes dargestellt. so ist zb die zeichenkonstante 'A' nichts anderes als ein int mit dem wert 65.

    wenn du das array AEingabe[] mit einem char-array vergleichen willst (etwa mit strcmp()), dann deklariere AEingabe[] als char-array. der typ char ist nichts anderes als eine 8-bit ganzzahl. dem kannst du auch einen int-wert zuweisen.



  • net schrieb:

    zieh doch einfach das zeichen '0' ab.

    Du meinst etwa so...

    for (i=0; i<=5; i++)
    {
     AEingabe[i] = AEingabe[i] - '0';
    }
    

    ?
    Geht das nicht etwas eleganter? 😛

    Vielleicht hilft es, wenn ich noch kurz zeige, wie ich vor hatte, die Arrays zu vergleichen:

    for (j=0; j<AnzFragen; j++)
    {   if (iARichtig[j] == iAEingabe[j])
          iSumRichtig++;
    }
    

    Es soll hier ein Quiz umgesetzt werden. Das Array iARichtig enthält die richtigen Antworten, iAEingabe die vom Benutzer eingegebenen.


Anmelden zum Antworten