Za mało informacji. Nie działa, czyli co się dzieje? Jak wyglądają dane w pliku?
Jeśli układ danych wygląda tak: <A>\t<B>\t<C>\n, to odczyt może wyglądać tak:
int i = 0;
while (std::getline(plik, tab[i].zmienna1, '\t') &&
std::getline(plik, tab[i].zmienna2, '\t') &&
std::getline(plik, tab[i].zmienna3, '\n')) {
i++;
}
Brakuje tu oczywiście kontroli ilości wczytanych danych do tab, no ale opierałem się na kodzie, który podałeś.