これがコンパイルした私のプログラムで、eof を使用した while ループ以外のすべてが無限になり、score.dat ファイルには 20 個の乱数のリストが含まれています。eof が機能せず、継続的にループするのはなぜですか???
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
int main ()
{
int x, sum = 0, count = 0;
double answer;
ifstream y;
y.open("scores.dat");
while (!y.eof())
{
y >> x;
sum = sum + x;
count ++;
cout << x << endl;
}
answer = sqrt (((pow(x, 2.0)) - ((1.0/count) * (pow(x, 2.0)))) / (count - 1.0));
cout << answer;
}