[ Foro de C ]

Contraseña con asteriscos (*)

10-Mar-2015 14:07
Gerard lopes recio
1 Respuestas

Buenas, tengo hecho el siguiente programa donde tengo que introducir un password y tengo como máximo 3 intentos:

 
#include <stdio.h>
#include <string.h>
 
int main()
{
     char texto1[40];
    char usuario[40] = "egg77";
 
 
	  int intentos =3; 
 
	do{
		printf("Tienes %d intentos\n",intentos);
		printf("Introduzca su contraseña: ");
		gets(texto1);
		intentos=intentos-1;
	  }
 
	while((strcmp(texto1, usuario)!=0)&& (intentos>0));
 
	if (strcmp(texto1, usuario)==0) 
		{
		printf("PUEDE PASAR\n");
 
		}
 
	else{
		printf("ACCÉS DENEGADO\n");
		}
 
    return 0;
}
 


Me gustaría saber como poder hacer para que cuando introduzca la contraseña por el terminal me aparezcan asteriscos (*) y no letras o números.

Muchas gracias


10-Mar-2015 15:07
Nacho Cabanes (+31)

No podrás usar "gets". Deberás leer letra a letra con "getch", memorizando esas letras en una cadena que el usuario no ve, y mostrando tantos asteriscos como sea la longitud de esa cadena.

Tiene una dificultad adicional: deberás filtrar (como mínimo) la tecla Intro para el final de la introducción y la tecla Retroceso para borrar caracteres del final.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)