C ++: .eof na pustym pliku

Zobaczmy ten program:

ifstream filein("hey.txt");


if(filein.eof()){
    cout<<"END"<<endl;
}

Tutaj „hey.txt” jest pusty. Więc jeśli warunek tutaj jest uważany, powinien być prawdziwy Ale to nie jest

Dlaczego powrót do prawdziwego pliku jest pusty?

Jeśli dodam to przedif eof zwraca prawdę, chociażarr jest nadal pusty, a plik jest nadal pusty, więc oba pozostały niezmienione

char arr[100];
filein.getline(arr,99);

questionAnswers(3)

yourAnswerToTheQuestion