Tasten simulieren



  • 7H3 N4C3R schrieb:

    @MBCS-CITP:

    if (cKey == EOF)

    Dieser Vergleich kann so niemals wahr sein - und wenn doch, würde das eine Assertion rechtfertigen. cKey muss ein int sein. Außerdem ist das Zeichen in der unsigned-char Repräsentation.

    fgetc(), getc() and getchar() return the character read as an unsigned char cast to an int or EOF on end of file or error.

    7H3 N4C3R schrieb:

    Mal davon abgesehen, dass wir hier im C++ Forum sind 😉

    Man soll dann die stdio.h-Funktione nutzen, wenn einfacher zu handaben sind. Es kommt immer darauf an und ich habe nie ein Problem darin gesehen, die stdio.h und die std:: nach Zweck und Anwendung zu mischen. Wobei ich meistens die stdio.h einfach eleganter und einfacher halte (Geschmackssache).



  • MBCS-CITP schrieb:

    fgetc(), getc() and getchar() return the character read as an unsigned char cast to an int or EOF on end of file or error.

    Sag ich doch. Und das ist auch der Fehler in deinem Beispiel. Wenn Du schon in die Manpage gucken kannst, wirst Du auch festgestellt haben, dass der Rückgabewert int - und nicht char - ist. EOF ist nicht in (unsigned) char darstellbar und ist typischerweise -1. Der Datentyp von cKey, also char, ist schlichtweg falsch und die Bedingung kann (darf!) so nie wahr sein.


Anmelden zum Antworten