Help Desk
Ocultar uma palavra quando a digito

Estou fazendo um jogo da forca na linguagem C e estou com uma dúvida. Como eu faço para ocultar uma palavra quando a digito? Ou melhor, qual a função que devo utilizar para quando digitar uma palavra, esta não ser impressa na tela?!!
Alice Costa 

Terei alguma dificuldade em redigir uma orientação completa para esse caso, porque há muitos anos eu não desenvolvo nenhum programa para ambiente DOS ou - como preferem alguns - para "ambiente caracter". Isso posto, a melhor orientação que posso lhe oferecer é a que segue:

O que você digita aparece [automagicamente] no monitor porque o programa que está recebendo os caracteres digitados faz um echo de cada caracter recebido do teclado para o monitor. O echo é feito caracter-a-caracter. A função
cin oculta esse processo e faz o echo automaticamente. Por isso, quando se usa cin, não há porque se preocupar com echo dos caracteres digitados.

Se você precisa suprimir o echo de algum ou de todos os caracteres que está recebendo do teclado, você deve usar funções que lhe dêem controle sobre o echo dos caracteres:
getch e putch.

getch recebe cada caracter digitado sem fazer qualquer echo para o monitor.
putch exibe o caracter no monitor. Veja o exemplo:
#include <stdio.h>
#include <conio.h>

int main(void)
{
   char ch = 0;

   printf("Input a string:");
   while ((ch != '\r'))
      {
       ch = getch();
       putch(ch);
      }
   return 0;
}
Nesse exemplo, para suprimir completamente o echo dos caracteres digitados, remova putch do código.

Para fazer echo seletivo - de algum ou alguns caracteres pré-determinados - inclua as comparações necessárias:
#include <stdio.h>
#include <conio.h>

int main(void)
{
   char ch = 0;

   printf("Input a string:");
   while ((ch != '\r'))
      {
       ch = getch();
       if ((ch >= ´0´) || (ch <= ´9´))
          {
           putch(ch);
          }
      }
   return 0;
}

Autor:  Dagoberto Haele Arnaut
Exemplos extraídos de Borland C++ 5.0 Programmer's Guidel

| Home | Bookmarks | Universidades | Para Saber mais | Universidades | WEB Directory | Mapa do site |