[C++] Pętla nie wykrywa końca pliku

Witam mam następujący problem. Pętla while(!plik.eof()) nie wykrywa końca pliku i działa w nieskończoność. Wcześniej działała. Nie wiem w czym jest problem. Stworzyłem nowy plik i pilnowałem by nie było spacji na końcu pliku też nie pomogło. W czym może być problem.

kod funkcji:

void wczytywanie(){       

	Wlasciciel wl(1);

	int liczbakont;



		     ifstream plik;

			plik.open("klienci.txt");

			if (!plik.good()){

			 cout << "Nie moge otworzyc pliku" << endl

			 << "dane klientow nie zostaly wczytane!" << endl

			 << "Program zostanie zamkniety" << endl;

			 niewczytaniklienci=true;

			 system ("Pause");

			}


			else{

		while (!plik.eof()){

			cout << "I nie skonczyla sie" << endl;

		wl.listakont.clear();	


		plik >> wl.imie;

		plik >> wl.nazwisko;

        wl.numer=klienci.size();

		string m, u, k;

		int nd, nm;

		plik >> m >> u >> k >> nd >> nm;

		wl.adres.ustaw(m,u,k,nd,nm);

		plik >> wl.haslo;

	    plik >> liczbakont;


		for(int i=0;i
			Konto kon(1);

			plik >> kon.pin >> kon.saldo >> kon.maxdebet;

			wl.listakont.push_back(kon);

	    }


		klienci.push_back(wl);

		kontaklientow.push_back(wl.listakont);

       }


       cout << "Klienci zostali wczytani" << endl;

       system ("Pause");

       system ("cls");

	   }

plik.close();

}
while (true){

...

if(!(plik>>wl.imie)) break;