Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - acquisizione stringa senza echo!
Forum - C/C++ - acquisizione stringa senza echo!

Avatar
Il_maca (Normal User)
Rookie


Messaggi: 49
Iscritto: 19/12/2008

Segnala al moderatore
Postato alle 16:55
Giovedì, 19/03/2009
dovrei creare un sistema di acquisizione di una password, mandando a video gli asterischi!!
quindi mi servirebbe un'acquisizione senza echo; ho provato la getch(), ma purtroppo usando questa funzione mi acquisisce il valore ascii di tutti i tasti, compresi i tasti funzione, i tasti speciali eccetera!! prima di incasinarmi con uno switch vorrei sapere se esiste un altro metodo! grazie..

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 21:45
Giovedì, 19/03/2009
Supponendo che tu stia programmando in Windows...

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <string>
  3. #include <windows.h>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
  10.     DWORD mode = 0;
  11.     GetConsoleMode(hStdin, &mode);
  12.     SetConsoleMode(hStdin, mode & (~ENABLE_ECHO_INPUT));
  13.  
  14.     string s;
  15.     getline(cin, s);
  16.  
  17.     cout << s << endl;
  18.     return 0;
  19. }



Il codice semplicemente disabilita l'echoing per qualsiasi funzione di input.

Ultima modifica effettuata da pierotofy il 19/03/2009 alle 21:47


Il mio blog: https://piero.dev
PM Quote
Avatar
Il_maca (Normal User)
Rookie


Messaggi: 49
Iscritto: 19/12/2008

Segnala al moderatore
Postato alle 17:44
Venerdì, 20/03/2009
Testo quotato

Postato originariamente da pierotofy:

Supponendo che tu stia programmando in Windows...

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <string>
  3. #include <windows.h>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
  10.     DWORD mode = 0;
  11.     GetConsoleMode(hStdin, &mode);
  12.     SetConsoleMode(hStdin, mode & (~ENABLE_ECHO_INPUT));
  13.  
  14.     string s;
  15.     getline(cin, s);
  16.  
  17.     cout << s << endl;
  18.     return 0;
  19. }



Il codice semplicemente disabilita l'echoing per qualsiasi funzione di input.



grazie lo provo subito!!:rotfl::rotfl:
ok funziona alla perfezione, GRAZIE DAVVERO TANTO

Ultima modifica effettuata da Il_maca il 20/03/2009 alle 17:56
PM Quote