| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
igovan
Registrado: 30 Oct 2007 Mensajes: 1
| Publicado: 30/10/2007 11:01 am | | | Título: Mostrar en pantalla otra cosa |
| Bueno no se muy bien como poner el titulo de este problema.
He creado un programa simple del juego del ahorcado, y con la palabra que se juega al juego se le pide al usuario nada mas iniciarla, por lo tanto he echo esto.
| Código: | printf("Mete la palabra con la cual jugaras:\n\n\t"); gets(vec);
|
Pero claro el programa me pide que cuando el usuario meta la palabra en pantalla se muestre unos * como si de un password se tratara, no tiene que mostrar la palabra que esta escribiendo.
Bueno supongo que entenderéis lo que digo, por si acaso el ejemplo seria este.
Si tu pulsas en el teclado hola, en pantalla se vería ****
Supongo que tiene que ser alguna función de la librería del string, pero no se cual ni como implantarla.
Creo que sois la mejor pagina para esto y que me podréis ayudar en mi problema.
Muchas gracias por todo.
Un saludo. |
| | Volver arriba | |  | digies
Registrado: 18 Nov 2005 Mensajes: 240 Ubicación: Cono Sur
| Publicado: 30/10/2007 1:45 pm | | | Título: |
| Hola
No hay forma de hacerlo utilizando solo la biblioteca estándar de C porque ésta procesa la entrada estándar por líneas. Para ello debes usar la biblioteca de terceros conio (de MS-Windows) si tu compilador la soporta, sino las funciones propias del API de tu sistema operativo (como las funciones de Windows para consola...). Pero la mejor opción en consola es la librería multiplataforma ncurses.
Un ejemplo con curses "sin asteriscos" sería:
| Código: | #include <curses.h> #include <stdlib.h> int main (void) { char cadena[128]; initscr();
printw("Dime tu nombre: "); scanw("%s",cadena); /* El ingreso de la cadena no se verá en la consola. Cuando recién se presione <Enter>, se visualizará la cadena ingresada. */ printw("\nTe llamas: %s\n",cadena); /* Visualización de la cadena */
refresh(); getch(); endwin(); return EXIT_SUCCESS; }
|
... y con conio sería algo así:
| Código: | #include <stdio.h> #include <conio.c> #include <string.h>
int main(void) { char pass[20]; int i=0; printf("PASSWORD: "); while(pass[i] != 13) { /* Capturo carácter: */ pass[i]=getch(); if(pass[i]>32 && i<20) { putchar('*'); i++; } else if(pass[i]==8 && i>0) { putchar(8); putchar(' '); putchar(8); i--; } } pass[i]='\0'; if(!strcmp(pass, "clave")) puts("\n\n\n\t\t\t -- ACCESO PERMITIDO --"); else puts("\n\n\n\t\t\t -- ACCESO DENEGADO --"); getch(); return EXIT_SUCCESS; }
|
Un saludo |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |