Pobieranie i losowanie odpowiedzi z pliku

0

Witam Wszystkich,

Jest to mój pierwszy post więc proszę mi wybaczyć wszelkie błędy :)

Czy ktoś z Was jest w stanie mi pomóc i powiedzieć jak zrobić żeby pobierając z pliku pytanie, a następnie 4 odpowiedzi (1 zawsze jest poprawna) zrobić tak żeby te odpowiedzi wyświetlały się w różnej kolejności ale żeby kompilator "pamiętał", która odpowiedź jest prawidłowa?
Póki co napisałem coś takiego:
Pobieram pytanie i 4 odpowiedzi, a następnie użytkownik wybiera odpowiedź.
W pliku jest w sumie 29 pytań i po 4 odpowiedzi do każdego.

vector<pytanie> gra;

	fstream plik;
	plik.open("milionerzy.txt", ios::in);
	while(! plik.eof())
	{
	getline(plik, napis);

	pytanie wczytane_pytanie;
	wczytane_pytanie.przechowuje_pytanie = napis;

	for(int i = 0; i < 4; i++)
	{
	getline(plik, napis);
	wczytane_pytanie.przechowane_odpowiedzi[i] = napis;
	}
	gra.push_back(wczytane_pytanie);
	}

	vector<pytanie>::iterator itr;
 
	int gramy_dalej;
	do
	{
	srand( (unsigned) time( NULL ) );
	int losuj = (( rand() % (gra.size()-1) )  );
	cout << "Pytanie numer: " << losuj << endl;
	itr = gra.begin();
	itr = itr + losuj;
	cout << (*itr).przechowuje_pytanie << endl;

	for(int i = 0; i < 4; i++)
	{
		cout << "Odp nr: "<< i+1 << " - " << (*itr).przechowane_odpowiedzi[i] << endl;
	}
	
	int odpowiedz;
	cout << "\nPodaj odpowiedź: ";
	cin >> odpowiedz;

	if(odpowiedz == 1)
	{
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_INTENSITY);
		cout << "Dobra odpowiedź" << endl;
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE | FOREGROUND_INTENSITY);
	}
	else
	{
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_INTENSITY);
		cout << "Zła odpowiedź" << endl;
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE | FOREGROUND_INTENSITY);
	}

	cout << "Gramy dalej ? T -1 / N - Wpisz cokolwiek: ";
	cin >> gramy_dalej;

	gra.erase(itr);
	cout << "Zostało Ci jeszcze: " << gra.size() - 1 << " pytań" << endl << endl;
	}while(gramy_dalej == 1);

 

Pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1