C/Visual C - En modo consola

 
Vista:
sin imagen de perfil

En modo consola

Publicado por Edwin (70 intervenciones) el 17/11/2006 01:52:02
Hola a todos...

Miren mi objetivo es crear la funcion del password, hay muchos ejemplos en este foro, pero no el verdadero, en niguno lo hay, osea de que se usa el getch y almaceno en un vector, pero no me va hacer la misma funcionalidad como de un control passwor, Osea si pulso la tecla de retroceso tambien me la almacena. En cambio en el control password se borra el caracter(alguno de acuerdo la posicion). Se que hay controles para hacer eso, pero yo lo uso en modo consola, como si estuviera ingresando algun valor con el scanf, pero que me salga en asteriscos.

Desconosco mucho sobre las funciones de C.

Gracias de Antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:En modo consola

Publicado por Fran (122 intervenciones) el 17/11/2006 13:16:47
A ver si entendi... queres que en cada tecla que apretas aparezca un asterisco no? Pero que si tipeas la tecla retroceso no te lo tome no?
Bueno, para que aparezca el asterisco necesitas tomar caracter por caracter, lo que podrias hacer es ir guardando las cosas en un vector, y en caso de leer la tecla retroceso (no recuerdo el codigo ansii de la misma ahora) se borre un elemento del vector es decir

char * passwd;
int idx=0;

passwd = malloc(sizeof(char));
passwd[0]= '\0';

while(passwd[i]!='\n')
{
passwd[i] = getchar();
if(passwd[i]!=tecladeretroceso(no me acuerdo cual es))
{
i++; //sigue creciendo el vector, de lo contrario no y lo que tipeas despues se soobreescribe.
}
for(j=0;j<i;j++)
printf("*");
printf("\n");
}

la idea se me acaba de ocurrir asi que habra cosas para mejorar seguro, pero es una idea basica de lo que podrias hacer, te sirvio? espero que si, je
Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:En modo consola, ok+++, miren esto...

Publicado por Edwin (70 intervenciones) el 18/11/2006 01:31:26
Hola

Muchas Gracias por tu ayuda, (:- )-|--<

Observa esto:

Por ejemplo yo escribo "rafael", y se debe mostrar ******, ok.
Pero si yo pulso la tecla retroceso, osea "rafae", y debe mostrar *****.

Y asi consecutivamente pulse la tecla retroceso debe realizar la mis operación.

Uhmmm, hay alguna manera de hacer con el scanf??? ya que con el scanf se puede controlar el retroceso,y aún así tambien se puede retroceder con las teclas direccionales para poder borrar un dicho caracter, como por ejemplo si escribo la palabra "racfael", no es necesario borrar desde el caracter "l", sino retroceder con el direccional left y borrar el caracter "c", para que quede "rafael". y asi´sería perfecto. Pero dudo mucho que se pueda hacer con el scanf.

Pero bueno gracias por tu respuesta, ya se como hacer para poder retroceder y borrar el caracter, bueno tengo la idea, para que quede como mencione en el principio.

Gracias, si hay respuestas ya sean positivas o negativas por favor mencionenlas ok.

Gracias de Antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar