Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. 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..


Il computer non è una macchina intelligente che aiuta le persone stupide.
E' una macchina stupida che funziona solo nelle mani delle persone intelligenti.
Programmatore, non per lavoro, ma per passione!!
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6127
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


Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
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


Il computer non è una macchina intelligente che aiuta le persone stupide.
E' una macchina stupida che funziona solo nelle mani delle persone intelligenti.
Programmatore, non per lavoro, ma per passione!!
PM Quote