Эти две строки,
std::getline(stream_in, passenger.group_code);
stream_in.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
должно быть в обратном порядке:
stream_in.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::getline(stream_in, passenger.group_code);
Подумайте о том, что является целью из ignore
.
Кроме того, вместо проверки только на EOF, проверьте на общую ошибку.
То есть вместо
while (!stream_in.eof())
запись
while (stream_in)
Может быть, есть еще что-то не так, но вышеизложенное я сразу увидел.
Приветствия & hth.,