El siguiente  código, forma  parte de un programa encargado de leer un archivo de texto, que contiene un valor unico por cada linea.
La idea es leer todos los valores y calcular el promedio.
El problema es que 
en la lectura se está repitiendo el último valor del archivo. (Ej, si se tiene 4,5,6, el programa lee 4,5,6,6) 
Código:
 void leeVentas(){
     int contador = 0;
     double valor, suma;
     ifstream ventas("ventas.txt");     
     while (!ventas.eof()){
        contador++;
        ventas >> valor;
        suma += valor;
        cout<<"ventas "<<contador<<" $ "<<valor<<endl;
     }
     ventas.close();
     cout<<"Total $ "<<suma<<endl;
     cout<<"Promedio de ventas del dia : $"<< suma/contador;
}