Kłopot z wyświetlaniem kolejnych pytań po pierwszym pytaniu quizu.

0

Staram sie napisac prosty quiz w c++ od dluzszego czasu i jestem juz blisko sukcesu jednak po wczytaniu pierwszego pytania i podaniu odpowiedzi ktora wczytuje sie bez zarzutu, drugie pytanie jest juz nie widoczne i sa same napisy A., B. itd. W czym lezy problem?

#include <iostream>
#include <string>
#include <fstream>
#include <algorithm>

using namespace std;
int main()
{
	//definicje zmiennych do quizu
	string wybor;
	string tytul,nick;
	string pytanie[5];
	string odpA[5];
	string odpB[5];
	string odpC[5];
	string odpD[5];
	string poprawna[5];
	int punkty=0;



	cout<<"\t\t\t\tQUIZ - freq"<<endl;
	cout<<"\t\t\t\twersja 1.01"<<endl;
	fstream plik;
	plik.open("quiz.txt",ios::in);       //wczytanie pliku
	if(plik.good()==false)
		cout<<"Nie mozna znalezc pliku!";
	string linia;                           //zmienna do przechowywania linii
	int nr_linii=1;
	int nr_pytania=1;

	while(getline(plik,linia))
	{
		switch(nr_linii)
		{
			case 1:
			tytul=linia;
			case 2:
			nick=linia;
			case 3:
			pytanie[0]=linia;
			break;
			case 4:
			odpA[0]=linia;
			break;
			case 5:
			odpB[0]=linia;
			break;
			case 6:
			odpC[0]=linia;
			break;
			case 7:
			odpD[0]=linia;
			break;
			case 8:
			poprawna[0]=linia;
			break;
		}
		if(nr_linii==8) {nr_linii=2;nr_pytania++;}
		nr_linii++;
	}
	plik.close();                      //zakonczenie pracy z plikiem

	for(int i=0;i<=4;i++)
	{
		cout<<"\n\n"<<pytanie[i]<<endl;
		cout<<"A. "<<odpA[i]<<endl;
		cout<<"B. "<<odpB[i]<<endl;
		cout<<"C. "<<odpC[i]<<endl;
		cout<<"D. "<<odpD[i]<<endl;
		cout<<"Podaj odpowiedz: ";
		cin>>wybor;
		transform(wybor.begin(),wybor.end(),wybor.begin(),::tolower);
		if(wybor==poprawna[i])
		{
			cout<<"Brawo! Zdobywasz punkt!";
			punkty++;
		}
		else
		{
			cout<<"Zla odpowiedz! Dobra to "<<poprawna[i];
		}
		
	}
	
	cout<<"\n\nKoniec! Liczba zdobytych przez ciebie punktow to: "<<punkty<<"\n\n";


	


	system("pause");
	return 0;
}
0

W pętli while, przypisujesz pytania i odpowiedzi za każdym razem do elementu tablicy o indeksie 0. Musisz stworzyć zmienną pomocniczą którą inkrementujesz po każdym przejściu pętli, a stanowić ona ma indeks elementu dodawanego do tablicy(tak jak w pętli for poniżej). Możesz też zamiast zwykłych tablic wykorzystać std::vector, wtedy dodajesz nowy element metodą push_back.
Ps. Program aż prosi się o wykorzystanie struktur :D

struct Pytanie{
std::string Pytanie;
std::string OdpowiedzA;
...
0

Dziekuje bardzo za pomoc :) A co do struktur to jeszcze mam czas, to dopiero pierwszy tydzien mojej przygody :D

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