Ayuda con getchar:(

Iniciado por TopoJunior, 13 Febrero 2013, 22:22 PM

0 Miembros y 1 Visitante están viendo este tema.

TopoJunior

Bueno, hola a todos! El caso es que estoy haciendo un programa, el ahorcado, la palabra inicial (van a ser 3) es FUTBOL, y yo puse: IF. Si ... ch es igual a 'f' entonces ponla en el printf, que sería F _ _ _ _  Vale, si no se cumple, un else que sume 1 a errores y y diga cuantos errores llevas. Bien. hasta aquí bien... Peeeeeeeeeeeeeeeeeeeeeeeeeeeeeeero, si tu pones U, que pertenece a la palabra, te dice que has fallado, como hago para que eso no pase? En el sentido de que, que tengo que hacer para que reconozca la U ? pero antes de la F por ejemplo.. No sé si me expliqué bien...

leosansan

Mejor pon el código que llevas, a ver si nos enteramos mejor.
Saluditos!.

TopoJunior

#include <stdio.h>
#include <time.h>
#include <conio.h>

main()
{
      char ch;
      char ch1;
      int errores1;
      errores1 = 0;
   srand (time(NULL));
   int aleatorio;
   aleatorio = rand() % 3+1;
   if(aleatorio == 2)
   {
   printf("Te ha tocado esta palabra\n"); // La palabra es FUTBOL
   printf("_ _ _ _ _ _");
   printf("Ve escribiendo las letras\n");
    ch=getchar();
   if(ch == 'f') {
      printf("Bien, has acertado. F _ _ _ _ _\n");         
    if(ch1 == 'u') {
          printf("Has acertado. FU _ _ _ _\n");
          }
   }
   else
   {
       errores1++;
       printf("Has fallado. Llevas %d errores.", errores1);
   }
}
while(1);
}

leosansan

Cita de: WyliFlech en 13 Febrero 2013, 22:22 PM
................... Peeeeeeeeeeeeeeeeeeeeeeeeeeeeeeero, si tu pones U, que pertenece a la palabra, te dice que has fallado, como hago para que eso no pase? En el sentido de que, que tengo que hacer para que reconozca la U ? pero antes de la F por ejemplo.. No sé si me expliqué bien...

Por ejemplo:

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <time.h>

int main(){
  char ch;
  char ch1;
  int errores1;
  errores1 = 0;
  srand (time(NULL));
  int aleatorio;
  aleatorio =+1 +rand() % 3;
   //if(aleatorio == 2)
 
  printf("Te ha tocado esta palabra\n"); // La palabra es FUTBOL
  printf("_ _ _ _ _ _");
  printf("Ve escribiendo las letras\n");

  ch=getchar();
  while (getchar ()!='\n');
  if(ch == 'f') {
    printf("Bien, has acertado. F _ _ _ _ _\n");
  }
  else if(ch == 'u') {
    printf("Has acertado. _U _ _ _ _\n");
  }
  else  {
    errores1++;
    printf("Has fallado. Llevas %d errores.\n", errores1);
  }
  return 0;
}


Saluditos!.

TopoJunior

Gracias, y una cosa, como hago esto ? Si tu tienes el IF ch == 'f' entonces pondrá
F _ _ pero si pongo U luego, pondrá _ u _ _ _ ¿Como hago para que se quede la F?

durasno

Citar¿Como hago para que se quede la F?
revisa el tema de arreglos, con eso lo podes solucionar. Luego para q puedas ingresar varios caracteres tenes que poner todo dentro de un bucle


Citarwhile (getchar ()!='\n');
no preguntaste por esto asi q supongo q lo entendes. Saludos
Ahorrate una pregunta, lee el man