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.
Stattprintf("*");
reicht auchputchar('*');
-
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