getchar/getch? c++

  • also möpschen n00bt herum öö

    wie bring ich getchar/getch dazu mir nicht werte im ANSI-code zwischenzuspeichern, sondern wie ich sie brauche/will? also nicht dass die nummer 5 als 53 (ansi code) gespeichert wird und dann ganz klar in weiterer folge bei if zahl > 5 immer größer ist...

  • Du brauchst kein scanf.

    C/C++ macht keinen Unterschied zwischen Zeichen und Zahlen, Bits sind Bits, wie man sie interpretiert ist die Frage.

    Es reicht eigentlich schon, einfach der der printf-Ausgabe die Variable als Zeichen (%c) und nicht als Dezimalzahl (%d) auszugeben. Ansonsten kannst du die Variable auch nach unsigned char casten, wenn das Auslesen erfolgreich war (zahl != EOF).

    Nachtrag: Okay, ich habe erst jetzt gesehen, dass du die Werte danach auch vergleichst. Wenn deine Tastatureingabe immer eine Zahl sein soll, insbesondere auch eine mit mehr als einem Zeichen, dann kannst du durchaus scanf verwenden.

  • Zitat von gandro


    Nachtrag: Okay, ich habe erst jetzt gesehen, dass du die Werte danach auch vergleichst. Wenn deine Tastatureingabe immer eine Zahl sein soll, insbesondere auch eine mit mehr als einem Zeichen, dann kannst du durchaus scanf verwenden.


    und für den fall ich möchte zB eine mixtur aus zahlen und buchstaben vergleichen? z.B. bei einer passwortabfrage, was nimmt man dann?

  • Mehrere Zeichen hintereinander sind eine Zeichenkette, oder auf englisch eben String.

    In C ist das String-Handling etwas mühsam, in C++ ist es weniger schlimm.

    Generell müsstest du aber das Passwort irgendwie als String einlesen und dann mit der Funktion strcmp() (bzw. bei C++ mit dem == Operator) vergleichen.

    Wie man unter Windows allerdings nen String in der Konsole einliest, ohne dass der beim Eingeben angezeigt wird, weiss ich gerade nicht.
    Unter UNIX gäbe es desweiteren auch noch die Funktion getpass(), kA ob die bei Windows auch irgendwo versteckt ist.

  • ok und wie kann ich nun einen string anlegen mit $wertvontastatureingabe
    ? ich bekomms nicht hin :S in php find ichs irgendwie einfacher mit variablen :fresse:

    Code
    char string[] = "-hier sollte eingefügt werden, was per tastatur eingegeben wurde";
    if(string==korrekt){
    printf("Korrekte Eingabe:, %s\n", string);
    } else {
    printf("Falsche Eingabe:, %s\n", string);
    }
  • In C++ ist es einfacher, aber da kann ich kaum Support geben, hab da nie viel mit gemacht. Aber da müsste es in etwa folgendes sein:

    C++-Strings halt, sind bisschen einfacher.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!