Вот что вы хотите сделать:
char line[MAXBUF];
char *result;
while((result = fgets(line, MAXBUF, fp)) != NULL) {
printf("%s", line);
}
fgets вводит строку (сохраняя символ новой строки). Вы проверяете результат, который является правильным. Теоретически, результат должен совпадать. У printf нет '\ n', потому что символ новой строки сохраняется в fgets (см. Man-страницу).