Bueno yo hice algo como esto hace un tiempo:
int main() {
char clave[] = "nicole987";
char ingreso[ 80 ];
int intentos = 3; /* contador de intentos iniciado a 3 */
do {
printf( "
Ingrese clave: " );
leer_clave( ingreso );
if ( strcmp( clave, ingreso ) ) { /* si la clave es errada */
intentos--; /* decremento intentos */
if( intentos > 0 ) { /* si todavia hay intentos */
system( "cls" );
printf( "
¡ Acceso Denegado ! Te queda %d intentos...
", intentos );
}
}
} while( strcmp( clave, ingreso ) && intentos > 0 );
system( "cls" );
if ( intentos == 0 ) { /* si se llegó a agotar los intentos */
printf( "
¡ Conexion Fallida ... Cierre el programa o pulse cualquier tecla !
" );
/* indicador de fallo */
getch();
exit( 0 ); /* termina el programa, no se ingresó la clave correcta */
}
/* las siguientes intrucciones se ejecutarán sólo si se ingresó la clave correcta */
printf( "
******************* BIENVENIDO *******************
" );
printf( " Como ingreso la clave correcta usted tiene el control " );
getch();
return 0;
}
}
void leer_clave( char *ingreso ) {
char c = ' ';
strcpy( ingreso, " " );
int i = 0;
while( ( c = getch() ) != '
' ) {
if ( c == '' && i > 0 ) {
printf( "%c", '' );
putchar( ' ' );
printf( "%c", '' );
i--;
}
else {
ingreso[ i ] = c;
if ( ingreso[0] != '' && !isspace( ingreso[0] ) ) {
i++;
putchar( '*' );
}
}
}
ingreso[ i ] = ' ';
}
Espero te sirva
Salu2