Use getline y >> cuando lea el archivo C ++

Debido a que los datos del archivo tienen este aspecto: la línea 1 es el nombre (la última es la última), la siguiente línea es la puntuación (puntaje1 puntaje 2 ... puntaje5) y así sucesivamente ... Entonces, creo que necesito un nombre para el nombre y >> para Puntuación

Ejemplo de archivo de datos

David Beckham
80 90 100 20 50
Ronaldinho Gaucho
99 80 100 20 60
....

En primer lugar, tengo estructura.

struct Player {
string name;
int score[5];
} player[size]

Cuando se leen datos del archivo

int i = 0;
while(!file.eof())
    {
        for (int j = 0; j < 2; j++) //read each 2 two lines
        {               
            if(j==0) // name
            {               
                getline(file, player[i].name);  
            }
                        else if(j==1) // score
            {
                for(int k=0; k<5; k++) file >> player[i].grade[k];
            }
                }
         i++; //move to next player
    }

El problema es que después de leer todos los puntajes (del primer jugador), parece que no va a la siguiente línea para continuar leyendo el siguiente nombre, como si fuera un desastre. Entonces, ¿alguna sugerencia para corregir mi código o una nueva idea para hacer esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta