/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Mostrar en pantalla otra cosa

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
igovan



Registrado: 30 Oct 2007
Mensajes: 1

MensajePublicado: 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

MensajePublicado: 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
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com