preguntas y respuestas c++

Iniciado por peterfly, 2 Agosto 2011, 00:58 AM

0 Miembros y 2 Visitantes están viendo este tema.

peterfly

lo que quero es:
1. el programa tiene que preguntarte (que pregunta quieres acer)
2. cuando aces la pregunta te sale automaticamente la respuesta
3. cuando a salido la respuesta te pregunta el programa (quieres continuar o no)
4. al responder (si quiero continuar) vuelve al principio

resultados actuales:
1. el programa te pregunta (que pregunta quieres acer)
2. cuando aces la pregunta te sale la respuesta automaticamente
3. cuando a salido la respuesta te pregunta si quieres continuar o no
4. AQUI ESTA EL PROBLEMA al responder (si quiero continuar) te sigue preguntando (si quieres continuar)

Dark Invader

Esto es lo que quieres,pero te falta añadir muchas preguntas y sus respuesta:

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

int main (void)
{

    int i;
    char cadena1[40]="";
char respuesta =0;
    do{
    printf("mis preguntas y respuestas \n \n");
    printf("escriba la pregunta:  ");
    gets(cadena1);

   
    i= strcmp(cadena1,"que edad tengo?");
    if (i==0){
    printf("15\n\n");

}

std::cout << "desea continuar (s o n)?\n";
std::cin >> respuesta;
setbuf(stdin,NULL);
switch (respuesta){
       case 's':
   
   printf("ha salido con la respuesta s\n");
           
   break;
       case 'n':
   
   printf("ha salido con la respuesta n");
            return false;
break;
       default:
               
   printf("ha salido sin la letra n o s");
               return false;
   break;

}
               }while ((respuesta =='s')||(respuesta == 'S'));
               
     getchar();
     return 0;
}

rir3760

#12
En respuesta a peterfly: necesitas un buen libro o curso sobre C++ y seguirlo a detalle ya que con "palos de ciego" ni aprendes bien ni aprendes rápido. Revisa los temas fijos de este foro, ahí hay información para entretenerse por meses.

En cuanto al programa honestamente no lo veo sentido pero se puede hacer asi:
Código (cpp) [Seleccionar]
#include <iostream>
using std::cin;
using std::cout;
using std::endl;

#include <string>
using std::string;

#include <limits>
using std::numeric_limits;

int main ()
{
   string pregunta;
   char continuar;
   
   do {
      cout << "Escribe la pregunta:  ";
      getline(cin, pregunta);
     
      if (pregunta == "que edad tengo?")
         cout << "Pregunta correcta!" << endl;
      else
         cout << "Pregunta incorrecta!" << endl;
         
      cout << "Desea continuar (s o n)?" << endl;
      std::cin >> continuar;
      cin.ignore(numeric_limits<int>::max(), '\n');
   } while (continuar == 's' || continuar == 'S');
   
   return 0;
}



----


Un comentario sobre el programa de Dark Invader , el uso de la función:
Código (cpp) [Seleccionar]
setbuf(stdin,NULL);
Para así vaciar el bufer de la entrada estándar no es correcto ya que esa función termina en una llamada a "setvbuf". El problema aquí es que esta ultima solo puede llamarse antes de cualquier uso del stream (salvo su apertura con fopen).

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

peterfly

muchisimas gracias a todos... tema solucionado