char *fgets(char *str, int num, FILE *stream)
Функция fgets() считывает до num-1 символов из файла stream и помещает их в массив символов, на который указывает str. Символы считываются до тех пор, пока не встретится символ «новая строка», EOF или до достижения указанного предела. По окончании считывания в массив str сразу после последнего считанного символа помещается нулевой символ. Символ «новая строка» при считывании будет сохранен и станет частью массива str.
В случае удачи fgets() возвращает str, при неудаче возвращается NULL. В случае ошибки по чтению содержимое массива, на который указывает str, не определено. Поскольку как в случае ошибки, так и при достижении конца файла возвращается null, для определения того, что именно произошло, необходимо использовать feof() или ferror().
Эта программа использует fgets() для отображения содержимого текстового файла, на который указывает первый аргумент командной строки: #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; }
