Проблема в том, что когда вы находитесь в конце файла, тест на file
все равно будет успешным, потому что вы еще не прочитали после конца файла.Таким образом, вам также нужно проверить возвращение из getline()
.
Поскольку вам нужно проверить возвращение из getline()
, чтобы увидеть, успешно ли оно выполнено, вы также можете поместить его прямо в цикл while:
while (file.getline(line[l], 80))
cout << line[l++] << "\n";
Таким образом, вам не требуется отдельный тест для file
и getline()
.