Zeichen bei Eingabe in *** verwandeln...

wedhead

Mitglied
Hi,


ich hab in borland c++ 6 ne konsolenanwendung gemacht, wo man einen pin eingeben muss um auf bestimmte funktionen inerhalb ner kalsse zugreifen zu können.


mal angenommen der code ist 1234

und ich habe: int pin; cout<<"code eingeben: ";cin>>pin;

dann erschein code eingeben: "hier cursor"

nun soll bei eingabe sofort das zeichen in der anzeige mit einem * ausgetauscht werden, aber der eingegeben wert soll als pin erhalten bleiben


könnt ihr mir da bei der umsetzung helfen ?



thx im voraus

Weedy
 
Hi.

Das ist leider nicht so einfach zu realisieren, da die Eingabe normalerweise zeilenweise gepuffert wird. D.h. dein Programm bekommt erst wieder die Kontrolle wenn eine komplette Zeile eingelesen wurde.

Man könnte allerdings die Console in einen Modus schalten indem die Zeichen gar nicht mehr dargestellt werden (no echo mode). Aber unter Windows kenn ich mich da nicht aus.

Evtl. kann man die Console auch in einen Modus schalten wo die Eingabe Zeichen für Zeichen erfolgt (also ungepuffert). Da könntest du dann sowie ein Zeichen eingetippt wird, dieses Zeichen speichern, auf dem Bildschirm löschen und mit einem Sternchen überschreiben. Aber unter Windows kenn ich mich da nicht aus. ;)
 
Man muss nicht "zeilenweiße" einlesen
einfach mit getch() jedes Zeichen und das mit ner while schleife koppeln die das solange macht bis enter gedrückt wird. Der nötige header ist glaub <iostream>
Ansonsten einfach suchen das Thema hatten wir schon mal.
Greez Ives
 
Du hast das Thema in 2 Foren gepostet, ich hab dir da nen Code geschrieben!

Du kannst einfach getch() verwenden, da getch() ungepufftert ist und das eingelesene Zeichen NICHT gleich auf dem Bildschirm angezeigt wird.. du musst also nur das Zeichen einlesen und dann einen Stern mit cout ausgeben...

Nebenbei, getch() ist in conio.h definiert und nicht in iostream


gruß Kangaxx
 
Du hast recht, aber er wird noch mehr bauchen, da getch() immer mit ENTER bestätigt werden muss.
Werde nachher mal was probieren und vielleicht hier posten aber immoment bin ich beschäftigt.
 
Zurück