Ojej, ale masz bałagan.
Zamieniłem nagłówek windows.h na cstdlib, żeby zwiększyć przenośność programu. Funkcja parseConfig powinna być rozbita co najmniej na dwie lub trzy osobne funkcje (takie, które wykonują jedną czynność - w tej chwili ta funkcja zajmuje się czytaniem pliku, sumowaniem oraz zapisem do pliku), ale to już zadanie dla Ciebie.
Pracę z plikiem rozdzieliłem na dwa etapy - osobno wczytywanie oraz zapis, ze względu na inną czynność, podejmowaną gdy plik nie istnieje.
Wyrzuciłem zmienne globalne - naprawdę nie powinno się ich używać.
Poprawiłem obliczanie wyniku w funkcji main - poprzednio wywoływałeś funkcję parseConfig dwukrotnie, przez co "dzisiejsze baseny" były podliczane dwukrotnie.
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
int parseConfig(int g)
{
fstream config;
int current_value;
config.open("wyniki.txt", ios::in);
if(config.good())
{
config >> current_value;
}
else
{
current_value = 0;
}
config.close();
int sum = current_value + g;
config.open("wyniki.txt", ios::out);
if(config.good())
{
config<<sum;
}
else
{
cout<<"Nie udalo sie zapisac do pliku"<<endl;
}
return sum;
}
int metry(int b)
{
return (b*25); //Pool have a 25 meters..
}
int main()
{
int ilosc;
cout << "Podaj ilosc basenow, jaka dzis przeplyneles: ";
cin >> ilosc;
cout << "Przeplyneles dzis: " << metry(ilosc) << " metrow." << endl;
int result = parseConfig(ilosc);
cout << "Lacznie przeplynyles: " << result << " basenow (" << metry(result) << " metrow)." << endl;
system("pause");
return 0;
}