¿Por qué siempre está mal "while (! Feof (file))"?

Últimamente he visto personas tratando de leer archivos como este en muchas publicaciones: #include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { char *path = "stdin"; FILE *fp = argc > 1 ? fopen(path=argv[1], "r") : stdin; if( fp == NULL ) { perror(path);...