Título: hacer clave con * cuando se ingresa la misma Publicado por: neo_from_cs_matrix en 21 Agosto 2011, 17:58 pm 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 :xD Título: Re: hacer clave con * cuando se ingresa la misma Publicado por: rir3760 en 21 Agosto 2011, 18:39 pm 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 Título: Re: hacer clave con * cuando se ingresa la misma Publicado por: neo_from_cs_matrix en 21 Agosto 2011, 18:44 pm no haber yo encontre eso recien
http://www.daniweb.com/software-development/cpp/threads/32798 http://www.cplusplus.com/forum/general/3766/ http://ph.answers.yahoo.com/question/index?qid=20100928041720AAOyJGd http://answers.yahoo.com/question/index?qid=20091022163828AAGxeYE pero eso usa la biblioteca conio, pero quiero hacerlo con cin, osea el ingreso de la clave que sea con cin y entonces lo que necesito es modificar el cin para que cambie todas las letras o numeros que ingreso a hasteriscos, pero internamente guarda los valores reales para compararlos con la clave que esta wardada. por eso necesito hacerlo con cin, quisiera que alguien me explicara como se hace, osea la parte de modificar el cin para que cambie a hasteriscos gracias Título: Re: hacer clave con * cuando se ingresa la misma Publicado por: El_Java en 21 Agosto 2011, 19:05 pm 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. Título: Re: hacer clave con * cuando se ingresa la misma Publicado por: тαптяα en 21 Agosto 2011, 19:20 pm Supongo el lenguaje de programación es C++, ¿Correcto? Esto te servirá: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 Código
Título: Re: hacer clave con * cuando se ingresa la misma Publicado por: neo_from_cs_matrix en 21 Agosto 2011, 19:21 pm 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 :laugh: :¬¬ Título: Re: hacer clave con * cuando se ingresa la misma Publicado por: neo_from_cs_matrix en 21 Agosto 2011, 19:23 pm Esto te servirá: Código
gracias, parece ser getch la forma mas directa de lograr esto Título: Re: hacer clave con * cuando se ingresa la misma Publicado por: тαптяα en 21 Agosto 2011, 20:06 pm si, no es necesaria ninguuna libreria no-estandar de C++
Título: Re: hacer clave con * cuando se ingresa la misma Publicado por: rir3760 en 22 Agosto 2011, 00:08 am 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 (http://msdn.microsoft.com/en-us/library/ms682010.aspx), su desventaja es que esta requiere un buen manejo del lenguaje. Un saludo Título: Re: hacer clave con * cuando se ingresa la misma Publicado por: тαптяα en 22 Agosto 2011, 00:10 am getch, getche, etc, son parte de una biblioteca de terceros (conio de Borland) y no pertenecen a la biblioteca estándar de C++. Que sutil.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 (http://msdn.microsoft.com/en-us/library/ms682010.aspx), su desventaja es que esta requiere un buen manejo del lenguaje. Un saludo |