witam mam problem z programem głównie chyba źle przekazuje zmienne ale nie wiem jak to poprawić
program miał wczytywać pytania z pliku porównywać z odpowiedziami i przyznawać punkty
to jest kod
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <ctime>
#include <string>
#include <sstream>
#include <windows.h>
using namespace std;
int wylosuj_numer_pytania (int &losowa)
{
srand(time(NULL));
int *liczba= new int[20];
for (int i=0;i<20;i++)
{
liczba[i]=rand()%20+1;
for(int j=0;j<i;j++)
{
if(liczba[i]==liczba[j])
{
i--;break;
}
}
}
for(int i=0;i<20;i++)
{
losowa=liczba[i];
}
}
string wczytaj_pytanie(int losowa,string *odp)
{
for(int i=0;i<20;i++)
{
int L;
L=losowa;
string numer;
stringstream strumien;
strumien<<L;
strumien >>numer;
string napis ="Baza_Pytan/pytanie"+numer+".txt";
ifstream plik;
plik.open(napis.c_str());
if(plik)
{
string linia;
while(getline(plik,linia))
{
cout<<linia<<endl;
}
cout<<endl;
cout<<"podaj odpowiedz: ";
cin>>*odp;
}
else
{
cout <<"wystapil blad nie mozna otworzyc pliku";
}
plik.close();
cout <<endl<<endl;
}
}
int sprawdz( int losowa,string &odp,int *pkt=0)
{
int nr=losowa;
string odpowiedz;
string numer;
stringstream strumien;
strumien<<nr;
strumien >>numer;
string nazwa ="odpowiedzi/odp"+numer+".txt";
ifstream plik;
plik.open(nazwa.c_str());
if(plik)
{
string linia;
while(getline(plik,linia))
{
if(linia==odpowiedz)
{
*pkt++;
}
}
}
else
{
cout <<"wystapil blad nie mozna otworzyc pliku";
}
plik.close();
}
void podsumowanie(int &pkt)
{
int twoje_punkty =pkt;
cout <<"zdobyles "<<twoje_punkty;
}
void start()
{
int chose; // zmienna odpowiadaj¹ca za wybór opcji programu
cout <<"__________________________________________________________"<<endl
<<"witaj w tescie znajomosci lektur z jezyka polskiego : "<<endl
<<"wybierz opcje :"<<endl
<<"__________________________________________________________"<<endl
<<"1. Rozpocznij test "<<endl
<<"2. dodaj pytanie "<<endl
<<"3. usun pytanie"<<endl
<<"4. Zobacz Ranking "<<endl
<<"0. Zakoncz program "<<endl
<<"__________________________________________________________"<<endl
<<": ";
cin>>chose;
switch(chose)
{
case 1:
{
cout<<"za chwile rozpocznie sie test";
Sleep(500);
cout <<endl;
string odp;
int punkty;
int losowa;
wylosuj_numer_pytania(losowa);
wczytaj_pytanie(losowa,&odp);
sprawdz(losowa,odp,&punkty);
podsumowanie(punkty);
}
}
}
int main()
{
start();
return 0;
}
pytania się miały nie powtarzać a się powtarzają funkcja losowania bez powtórzeń napisana jest dobrze w przekazywaniu gdzieś robię błąd ale nie widzę gdzie a przy wpisaniu 20-tej odpowiedzi program się zawiesza już nie mam pomysłów jak to naprawić