1 か月前に C の学習を始めたばかりで、これはデータ リストのピークを検出するために書いたコードです。ターミナルで「input data.txt」を実行すると、どういうわけか無限ループに陥りますが、標準入力またはキーボードを介してまったく同じデータを手動で入力すると、完全に正常に動作します。無限ループに陥る理由はありますか?
ありがとう!
int main(void)
{
    int data1 = 0;
    int data2 = 0;
    int data3 = 0;
    int counter = 1;
    scanf("%d %d %d", &data1, &data2, &data3);
    puts("Number  Magnitude");
    while (data3!= EOF){
        if ((data1<=data2)&&(data2>data3)){
            printf("%*d%*d\n", 4,counter,11, data2);
            counter++;
        }
        data1 = data2;
        data2 = data3;
        scanf("%d", &data3);
     }
return 0;
}