#include<iostream>
#include<fstream>
#include<cstdlib>
#include<algorithm>
#include<string>
#include<stdio.h>
using namespace std;
int main()
{
fstream plik;
plik.open("quiz.txt",ios::in);
if(plik.good()==false)
{
cout<<"nie udało sie otworzyc pliku"<<endl;
exit(0);
}
int liczba_linii, liczba_pytan;
string bierzaca_linia;
while(!plik.eof())
{
getline(plik, bierzaca_linia);
liczba_linii++;
}
plik.close();
liczba_pytan=(liczba_linii-2)/6;
string temat, nick;
string tresc[liczba_pytan];
string odpA[liczba_pytan], odpB[liczba_pytan], odpC[liczba_pytan], odpD[liczba_pytan];
string poprawna[liczba_pytan];
string odpowiedz;
int punkty;
int nr_linii=1;
string linia;
int nr_pytania=0;
plik.open("quiz.txt",ios::in);
if(plik.good()==false)
{
cout<<"nie udało sie otworzyc pliku"<<endl;
exit(0);
}
while(getline(plik,linia))
{
switch(nr_linii)
{
case 1: temat=linia; break;
case 2: nick=linia; break;
case 3: tresc[nr_pytania]=linia; break;
case 4: odpA[nr_pytania]=linia; break;
case 5: odpB[nr_pytania]=linia; break;
case 6: odpC[nr_pytania]=linia; break;
case 7: odpD[nr_pytania]=linia; break;
case 8: poprawna[nr_pytania]=linia; break;
}
if(nr_linii==8)
{
nr_linii=2;
nr_pytania++;
}
nr_linii++;
}
plik.close();
cout<<"Witamy w quizie!"<<endl<<"Liczba pytan zawartych w quizie: "<<liczba_pytan<<endl;
for(int i=0; i<=liczba_pytan-1; i++)
{
cout<<endl<<tresc[i]<<endl;
cout<<"A. "<<odpA[i]<<endl;
cout<<"B. "<<odpB[i]<<endl;
cout<<"C. "<<odpC[i]<<endl;
cout<<"D. "<<odpD[i]<<endl;
cout<<"twoja odpowiedz: ";
cin>>odpowiedz;
transform(odpowiedz.begin(),odpowiedz.end(),odpowiedz.begin(), ::tolower);
if(odpowiedz==poprawna[i])
{
cout<<"odpowiedz poprawna, zdobywasz punkt"<<endl;
punkty++;
}
else
{
cout<<"odpowiedz bledna, poprawna byla: "<<poprawna[i]<<endl;
}
getchar();getchar();
system("cls");
}
cout<<endl<<"lacznie zdobyte punkty: "<<punkty<<endl;
return 0;
}
Quiz z odcinka 7 z c++ zmodyfikowałem tak żeby sam najpierw odczytał ile jest linii, co za tym idzie, pytań w quizie i zrobił odpowiednią liczbę sekcji w tablicy, nie wiedziałem co zrobić żeby program zaczął czytać linie od początku tak żeby później z tego samego pliku odczytać treść pytań, odpowiedzi itd., więc napisałem żeby najpierw zamknął plik a później znów go otwiorzył, no i jak zrobić to prościej żeby program zaczął czytać od początku i nie musiał otwierać tego samego pliku 2 razy