Cześć mam problem z ponownym otwarciem pliku txt . Gdy wyłam funkcję za pierwszym razem plik normalnie się otwiera. Natomiast za drugim plik się nie otwiera.
Czy wiecie o co chodzi?
void otworzTxt(enemy* obiekty, frogger* player, float* pszolaPraw, float* zabaPraw, float* piesekPraw,char* obecnyEtap,int* czasGry)
{
int liczbaPostaci;
int nrLini = 1;
string sciezka = "C:\\projektpp\\plikitxt\\etap1.txt";
sciezka[26] = *obecnyEtap;
fstream plik;
plik.open(sciezka, ios::in);
if (plik.good() == false)
{
cout << "plik nie istnieje";
}
string linia;
while (getline(plik, linia))
{
if (nrLini > 10)
{
// getline(plik, linia);
obiekty->liczbaPostaci= atoi(linia.c_str());
nrLini++;
getline(plik, linia);
obiekty->predkosc = atoi(linia.c_str());
nrLini++;
getline(plik, linia);
obiekty->sciezkaBmp = linia;
nrLini++;
getline(plik, linia);
obiekty->name = linia;
nrLini++;
int liczbaPostaci = obiekty->liczbaPostaci;
while (--liczbaPostaci>=0 )
{
getline(plik, linia);
obiekty->position[liczbaPostaci].x = atoi(linia.c_str());
nrLini++;
getline(plik, linia);
obiekty->position[liczbaPostaci].y = atoi(linia.c_str());
nrLini++;
getline(plik, linia);
obiekty->position[liczbaPostaci].h = atoi(linia.c_str());
nrLini++;
getline(plik, linia);
obiekty->position[liczbaPostaci].w = atoi(linia.c_str());
nrLini++;
}
obiekty++;
}
else
{
switch (nrLini)
{
case 1:*czasGry = atoi(linia.c_str());
break;
case 2:*obecnyEtap = atoi(linia.c_str());
break;
case 3:*pszolaPraw= atoi(linia.c_str());
break;
case 4:*zabaPraw = atoi(linia.c_str());
break;
case 5:*piesekPraw = atoi(linia.c_str());
break;
case 6:player->liczbaZyc = atoi(linia.c_str());
break;
case 7:player->position.x= atoi(linia.c_str());
break;
case 8:player->position.y = atoi(linia.c_str());
break;
case 9:player->position.w = atoi(linia.c_str());
break;
case 10:player->position.h = atoi(linia.c_str());
break;
}
nrLini++;
}
}
plik.close();
if (!plik.is_open())
{
cout << "plik nie zamkniety";
}
}