Probleme mit getche()



  • Hallo,

    ich bin noch ziemlich neu hier und wollte nur wissen:

    Wenn ich eine Variable z.B. zahl = 0 definiere und dann mit cin >> zahl; die Zahl einlese und mit "cout" ausgebe, also z.B. mit 5 erst neu überschreibe und ausgebe, so erscheint die Zahl 5 (wie zu erwarten).
    Mache ich aber dasselbe mit getche() erscheint die Zahl 53. Wieso ist das so ? Danke für eure Mühen ...


  • Mod

    Das liegt daran, weil das Zeichen '5' nicht den Zahlenwert 5 hat. Zu 99.9999999% wird dein Computer die Zeichen so codieren (oder mit einer Erweiterung davon):
    http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters

    Und, oh Wunder, '5' hat den Zahlenwert 53.



  • Deine (simple) Frage entsteht nur aus dem Umstand heraus, dass du nicht weißt, was die Funktion macht (geschweige denn wie sie intern funktioniert). Du wirst auch in Zukunft feststellen, dass die Funktionsweise einer Methode oder ihre korrekte Anwendung durch eine einfache Beobachtung sich (untertrieben gesagt) nicht immer erschließt. Lange Rede, kurzer Sinn: google.
    Die allgemeine Vorgehensweise bei Fehlern oder Fragen, die jeder Hilfssuchende zu Herzen nehmen sollte:

    1. Überlegen
    2. Intensiv Google und die Forensuche bemühen
    (3. Debuggen) (nicht immer sinnvoll/möglich)
    4. Überlegen
    5. Überlegen
    6. Im Forum fragen

    Edit: Nur damit du mich nicht falsch verstehst: das ist auf keinen Fall negativ gemeint.
    Das z.B. könnte auch hilfreich sein.


Anmelden zum Antworten