getline() daj do w warunku pętli, bo teraz jest potencjalne ryzyko błędu. Nie sprawdzasz po pobraniu wiersza, czy udało się pobrać dane.
Gdyby się nie udało, dalsze obliczenia nie mają sensu.
while(getline(plik,linia))
{
zmienna=atof(linia.c_str());
//Algorytm(zmienna,a)
}
Choć do czytania danych z pliku binarnego wygodniej i szybciej jest użyć metody read().
Przykłady były w linkach ze stacka.