hej , już prawie kończę pisać prostą konsolową grę w c++ . Zależy mi żeby program zapisywał do pliku nowe rekordy , informował o ich pobiciu itp . Problem jest taki że program odczytuje informacje z dokumentu poprawnie (i powiadamia o pobiciu rekordu) ale nie zapisuje nowych rekordów , czyli wartości nie zostaną zapełnione nowymi .
Na dole podałem funkcje odpowiadającą za te instrukcje bo całego kodu nie ma sensu wrzucać , zwłaszcza że jest podzielony na parę plików :) , Dziękuje za wszelka pomoc , na dole podałem funkcje :
fstream file; //plik
int number_with_file; //wynik zawarty w pliku
int points = 0; //punkty zbierane w grze / dodawanie ich dziala ok
void game::points_return()
{
cout<<" suma zdobytych punktow : "<<points<<endl;
file.open("game_records.txt",ios::in);
if(file.good()==false)
{
cout<<"error"<<endl; //jeżeli pliku nie ma
exit(0);
}
else //jezeli plik jest
{
string line; ..linia pliku
int line_number = 1;//numer lini
while(getline(file,line))
{
switch(line_number)
{
case 1: number_with_file=atoi(line.c_str()); break; //konwersja
}
}
if(points>number_with_file)//warunek czy nie został pobity rekord
{
cout<<"Brawo ! "<<endl; //do działa ...
file.open("game_records.txt",ios::out); //otwieranie w trybie do zapisu
file<<points; //to nie działa :(
}
}
file.close();
points=0; //zerowanie na koniec punktów bo gra jest zapętlona
}