Wie kann ich eingelesene Zeichen mit getch() an Zeichenkette anhängen???



  • Hallo Community,

    ich benötige dringend Hilfe!!!

    ich möchte ein Programm schreiben, dass eine Passwortabfrage enthält. Die Eingabe des PWD soll natürlich ausgesternt werden. Um einzulesen welche Zeichen eigegeben wurden verwende ich die Funktion getch(). Leider bekomme ich diese nict an eine Zeichenkette angehängt, sodass ich ein Passwort aus allen eingegeben zeichen erhalte. Kann mir jemand sagen wie ich dies hinbekomme.

    #include <stdio.h>
    #include <Windows.h>

    int main (void) {
    char pwd[10];
    int i;
    printf("Bitte Kennwort : ");
    while ( (i = getch()) != 13 ) { // Schleifendurchlauf bis ENTER-TAste gedrückt wird
    printf("*"); // Ausgabe für jeden tastendruck
    }
    system("PAUSE"); // System unterbrechen bis Taste gedrückt wird
    }

    Vielen Dank für eure Hilfe

    c_neuling



  • Mach nen Pointer auf das Array pwd . Mit dem kannst du dann in jedem Schleifendurchlauf dein Zeichen ( i ) zuweisen. Du musst ihn natürlich in der Schleife inkrementieren.

    Was passiert eigentlich, wenn ich mit deinem Programm ein Passwort von 20 Zeichen eingeben will?



  • Danke erstmal für deine schnelle Antwort, aber kannst du mir hierfür evtl. mal ein Stück Code zur verfügung stellen. Bin echt ein totaler c anfänger.

    Weiß nicht so genau was du hier mit genau beschreiben hast.

    Ich habe die größe des Array jetzt einfach mal auf 10 Zeichen begrenzt. ISt ja nur zu übungszwecken.



  • pwd ist ein Array. Da kannst du auf jedes Element zugreifen.

    int j = 0;
    pwd[j++] = i;
    

    Überleg dir die Stellen wo der Code hinkommt.
    Statt printf("*"); reicht auch putchar('*');



  • Vergiss nicht die '\0' am Ende von pwd einzufügen.



  • Super, ganz großes Danke!!!

    Wusste dann auch gleich, wo ich denn Code einfügen musste.

    Viele Grüße


Anmelden zum Antworten