Dezimalzahl eines Chars ausgeben...



  • Hi Leute.

    Da ich momentan viel mit der ASCII-Zeichentabelle zu tun habe, habe ich mir ein kleines Tool geschrieben das mir die betreffenden werte auf tastendruck zurückliefertz. Nun steht in meinem Tabellenbuch dass Die Taste "Entf" die Ordnungszahl 127 hat. Wenn ich nun mein Programm aufrufe und eben diese Taste betätitige, erscheint die Zahl 83 sowie das "S"....woran liegts!?!??!?!?!

    Hier mein Code:

    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    int zeichen;
    void main(void)
    {
    printf("\nZeichen eingeben: ");
    zeichen = getch();
    fflush(stdin);
    system("cls");
    printf("\n%d ist die Nummer fuer Zeichen %c", zeichen, zeichen);
    main();
    }
    


  • 127 sollte stimmen...
    Du solltest es aber lassen deine main function am Ende des Codes aufzurufen, für sowas gibts Schleifen.
    Außerdem sollte es "int main" heißen.



  • Die Zahl 83 ist schon richtig. Aber: Um sog. erweiterte Tasten prüfen zu können, dazu gehören neben F1, F2, ... auch Entf, Del, sendet Dir DOS beim ersten getch() einen 0-Wert, was Dein Programm veranlassen sollte, ein weiteres Mal die getch()-Funktion aufzurufen. Mit dieser Methode können dann auch Sondertasten abgefragt werden.

    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    
    int main(void)
    {
        int zeichen;
    
        printf("\nZeichen eingeben: ");
        if ((zeichen = getch()) == 0)
        {
            printf("Erweiterter Tastencode!! ");
            zeichen = getch();
        }
    
        printf("\n%d ist die Nummer fuer Zeichen '%c'", zeichen, zeichen);
    
        return 0;
    }
    

    Dieser ganze Thread gehört in's DOS-Forum!



  • @Mady:

    Hast du dein Programm getestet?
    Wenn ich entf drücke gibt er mir den Wert 224 aus...es sollte aber 127 sein 😕



  • Jo, er hat nicht abgefangen, dass nicht nur 0 sondern auch 0xE0 (224) einen erweiterten Tastencode einleiten.



  • Original erstellt von Peter Piksa:
    Hast du dein Programm getestet?
    Wenn ich entf drücke gibt er mir den Wert 224 aus...es sollte aber 127 sein 😕

    Nur mal ganz kurz mit bcc32 5.5.1. Kann sein, dass es mit Deinem Compiler Probleme gibt....

    Original erstellt von Bashar:
    Jo, er hat nicht abgefangen, dass nicht nur 0 sondern auch 0xE0 (224) einen erweiterten Tastencode einleiten.

    Mir war bisher nur die 0 bekannt.... Ich finde in meinen Unterlagen (PC Intern, Michael Tischer) den Wert 224 nicht. Kannst Du mir eine Quelle geben?

    Das Programm sollte ja nur das Verfahren demonstrieren und mein Posting verdeutlichen. Aber nachdem das alles hier sowieso OT ist.... 🙂

    [ Dieser Beitrag wurde am 28.01.2003 um 20:42 Uhr von mady editiert. ]



  • ... ups ...

    [ Dieser Beitrag wurde am 28.01.2003 um 20:42 Uhr von mady editiert. ]


Anmelden zum Antworten