Mi pregunta es cómo hacer para generar cadenas de caracteres de manera aleatoria pero sin que se repita.
La cuestión es que estoy haciendo un juego de trivia pero cuando ingreso el jugador y le hago las pregunta, siempre y cuando responda bien, sigue respondiendo pero a veces vuelve a repetir la pregunta anterior.
Aquí les dejo un pedazo de código con el struct para que vean que es lo que les quiero decir:
Código
Desde ya muchas gracias.
struct pregunta{ char pregunta[100]; char opciones[5][40]; int correcta; }; void jugar(){ pregunta A[21]; FILE *pa; int n=0; if((pa=fopen("ciencia.dat","rb"))==NULL){ cout<<"Error al abrir el archivo"; return; } char jugador[40]; int lvl=0,vida=1,rand_preg=0,rand_cat=0,respuesta=0; fflush(stdin); cout<<"\nNombre del participante: ";gets(jugador); while(vida!=0){ srand (time(NULL)); rand_cat = rand() % 5; srand (time(NULL)); if(rand_cat==1){ rand_preg=rand() % 20; cout<<"\nPregunta:"<<A[rand_preg].pregunta; cout<<"\nOpcion 1:"<<A[rand_preg].opciones[0]; cout<<"\nOpcion 2:"<<A[rand_preg].opciones[1]; cout<<"\nOpcion 3:"<<A[rand_preg].opciones[2]; cout<<"\nOpcion 4:"<<A[rand_preg].opciones[3]; cout<<"\nRESPUESTAAAAA:";cin>>respuesta; if(respuesta==A[rand_preg].correcta){ lvl++; } else{ cout<<"\nPerdiste"; vida=0; } } }fclose(pa); }