loop .eof () não está funcionando

Estou tentando ler números de um arquivo e colocá-los em uma matriz. Agora, quando eu executo o programa, ele imprime 8 números, então a linha termina e imprime os mesmos 8 números. Está em um loop sem fim. O que estou fazendo de errado

#include <iostream>                                                             
#include <fstream>                                                              
using namespace std;                                                            

int main()                                                                      
{                                                                               
  int num;                                                                      
  ifstream infile;                                                              
  infile.open("euler8Nums.txt");                                                
    infile >> num;//must attempt to read info prior to an eof() test            
    while(!infile.eof()){                                                       
      cout << num << endl;                                                      
      infile >> num;                                                            
    }                                                                           
    infile.close();                                                             
    return 0;                                                                   
}  

questionAnswers(2)

yourAnswerToTheQuestion