Hej,
Możesz użyć biblioteki pdcurses dla windows lub ncurses dla gnu/linux. Biblioteka *curses, służy do nisko-poziomowego zarządania terminalem.
- Wyłącz tryb echo (funkcja noecho()) oraz buforowanie strumienia wejściowego (funkcja raw())
- W pętli, pobieraj znak za pomocą funkcji getch(), a po jego pobraniu wpisz znak '*' na wyjście. Z każdym kolejnym znakiem, dołączaj go do obiektu std::string za pomocą metody push_back(), a następnie porównaj go z hasłem i podejmij odpowiednie akcje (Wyjście z pętli, kontynuacja)
#include <ncurses.h>
#include <iostream>
int main()
{ initscr();
noecho(); /* Wyłączenie wypisywania strumienia wejściowego na wyjście */
cbreak(); /* Podobnie co raw(), tylko że pozwala na użycie skrótów klawiszowych (Ctrl+C) */
std::string password;
char symbol;
while (true)
{ symbol = getch();
printw("*");
password.push_back(symbol);
if (password == "zaq1@WSX")
break; }
std::cout << "\nZalogowano\n";
endwin(); }