Autor
|
Tema: hacer clave con * cuando se ingresa la misma (Leído 4,391 veces)
|
neo_from_cs_matrix
Desconectado
Mensajes: 35
|
estoy en un programa de consola, necesito ingresar usuario y clave, pero quiero que la clave sea con hasteriscos asi ***** no se me ocurre mucho, manipular el cin? eso se me habia ocurrido si pero no se bien como hacerlo, me pueden ayudar a hacerlo .. solo necesito esa parte de la conversion a *, lo del ingreso eso no me referia
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Supongo el lenguaje de programación es C++, ¿Correcto?
No es posible utilizando solo la biblioteca estándar de C++, vas a tener que utilizar bien el API que exponga el SO (por ejemplo Win32 en MS Windows) o una biblioteca de terceros (por ejemplo ncurses en Linux).
Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
|
El_Java
|
el problema de lo que quieres hacer es que el texto que se ingresa en la consola no se ingresa realmente en el buffer del cin hasta que no pulsas enter, asi te da la opcion de borrar si te equivocas, por lo que no se puede sincronizar el poner una letra y que salga el asterisco, otra cosa es que uses librerias graficas como Qt, que te dan la opcion de aplicar un cambio cuando se pulsa una letra y se ponga el * en la caja del texto. No se si me he explicado bien, alguna duda ya sabes Un saludo.
|
|
|
En línea
|
|
|
|
тαптяα
Desconectado
Mensajes: 1.151
Sic utere tuo ut alienum non laeda
|
Supongo el lenguaje de programación es C++, ¿Correcto?
No es posible utilizando solo la biblioteca estándar de C++, vas a tener que utilizar bien el API que exponga el SO (por ejemplo Win32 en MS Windows) o una biblioteca de terceros (por ejemplo ncurses en Linux).
Un saludo
Esto te servirá: #include <iostream> #include <string> #include <conio.h> int main() { using std::cout; using std::endl; using std::cin; using std::string; const unsigned short len = 12; //aqui pones la longitud de la cadena de texto string letra; string respuesta = "Access:"; string texto = "************"; int j; //PROGRAMA cout << "cPanel Login Access" << endl <<"Pass: "; for(int i = 1; i <= len; i++) { letra = getch(); if(letra == "_") { break; } respuesta.insert(i+6, letra); cout << texto.substr(i-1, 1); } cin >> j; cout << endl << endl << respuesta << endl << endl << endl; system("pause"); return 0; }
|
|
|
En línea
|
|
|
|
neo_from_cs_matrix
Desconectado
Mensajes: 35
|
el problema de lo que quieres hacer es que el texto que se ingresa en la consola no se ingresa realmente en el buffer del cin hasta que no pulsas enter, asi te da la opcion de borrar si te equivocas, por lo que no se puede sincronizar el poner una letra y que salga el asterisco, otra cosa es que uses librerias graficas como Qt, que te dan la opcion de aplicar un cambio cuando se pulsa una letra y se ponga el * en la caja del texto. No se si me he explicado bien, alguna duda ya sabes Un saludo.
ah ahora entiendo porque no sirve esto, porque el cin trabaja con el buffer istream, y este no tiene nada hasta que no se presiona enter, es eso cierto ? entonces si yo sobrecargo cin eso no ayudaria a cambiar los digitos teclados porque todavia no fueron ingresados al buffer istream.. entonces que otras posibilidades me quedan, aparte de usar getch de conio? lo de la libreria grafica amigo queda descartado porque soy begineer en este momento
|
|
|
En línea
|
|
|
|
neo_from_cs_matrix
Desconectado
Mensajes: 35
|
Esto te servirá: #include <iostream> #include <string> #include <conio.h> int main() { using std::cout; using std::endl; using std::cin; using std::string; const unsigned short len = 12; //aqui pones la longitud de la cadena de texto string letra; string respuesta = "Access:"; string texto = "************"; int j; //PROGRAMA cout << "cPanel Login Access" << endl <<"Pass: "; for(int i = 1; i <= len; i++) { letra = getch(); if(letra == "_") { break; } respuesta.insert(i+6, letra); cout << texto.substr(i-1, 1); } cin >> j; cout << endl << endl << respuesta << endl << endl << endl; system("pause"); return 0; }
gracias, parece ser getch la forma mas directa de lograr esto
|
|
|
En línea
|
|
|
|
тαптяα
Desconectado
Mensajes: 1.151
Sic utere tuo ut alienum non laeda
|
si, no es necesaria ninguuna libreria no-estandar de C++
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
getch, getche, etc, son parte de una biblioteca de terceros (conio de Borland) y no pertenecen a la biblioteca estándar de C++. En el caso que nos ocupa eso, después de todo, no es importante ya que se tendrá que hacer de ese modo o utilizando (en mi opinión una opción mejor) la Win32 API. La referencia en linea del sitio oficial (MSDN) se encuentra en la pagina Consoles, su desventaja es que esta requiere un buen manejo del lenguaje. Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
тαптяα
Desconectado
Mensajes: 1.151
Sic utere tuo ut alienum non laeda
|
getch, getche, etc, son parte de una biblioteca de terceros (conio de Borland) y no pertenecen a la biblioteca estándar de C++. En el caso que nos ocupa eso, después de todo, no es importante ya que se tendrá que hacer de ese modo o utilizando (en mi opinión una opción mejor) la Win32 API. La referencia en linea del sitio oficial (MSDN) se encuentra en la pagina Consoles, su desventaja es que esta requiere un buen manejo del lenguaje. Un saludo Que sutil.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
por que cuando saco la clave de una wep algunas cargan datas muy rapido y
Hacking Wireless
|
titan711
|
1
|
2,761
|
2 Enero 2011, 16:53 pm
por kupu88
|
|
|
hacer include con la misma cabecera
PHP
|
the_jocker
|
2
|
1,821
|
26 Febrero 2012, 03:33 am
por the_jocker
|
|
|
Mensaje automático cuando alguien ingresa al canal?
Mensajería
|
NsTeam
|
1
|
6,033
|
19 Junio 2015, 23:56 pm
por patilanz
|
|
|
[AYUDA] Hacer que una función se llame a sí misma (Una parte de ella misma)
Programación C/C++
|
LoQueSeaPI
|
1
|
2,643
|
27 Septiembre 2016, 01:04 am
por engel lex
|
|
|
Densidad de la palabra clave y intercambio de enlaces misma teatica
Desarrollo Web
|
luis456
|
0
|
2,032
|
4 Marzo 2021, 07:11 am
por luis456
|
|