char *fgets(char *str, int num, FILE *stream)
Функция fgets() считывает до num-1 символов из файла stream и помещает их в массив символов, на который указывает str. Символы считываются до тех пор, пока не встретится символ «новая строка», EOF или до достижения указанного предела. По окончании считывания в массив str сразу после последнего считанного символа помещается нулевой символ. Символ «новая строка» при считывании будет сохранен и станет частью массива str.
В случае удачи fgets() возвращает str, при неудаче возвращается NULL. В случае ошибки по чтению содержимое массива, на который указывает str, не определено. Поскольку как в случае ошибки, так и при достижении конца файла возвращается null, для определения того, что именно произошло, необходимо использовать feof() или ferror().
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *fp;
char str[128];
if ((fp=fopen(argv[1], "r") )==NULL) {
printf("Cannot open file.\n");
exit (1);
}
while(!feof (fp)) {
if (fgets(str, 126, fp))
printf("%s", str);
}
fclose(fp);
return 0;
}