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