Описание функций языка Си
All | _ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
fgets – чтение строки из указанного потока данных.
#include
int fgets (char *str, int n, FILE *stream);
В случае успешного чтения строки, возвращается указатель на массив, в который помещены считанные данные (возвращается аргумент s).
Если достигнут конец файла, а данные не были считаны, то возвращается NULL.
Если при чтении данные произошла ошибка, то возвращается NULL, а в переменную errno записывается код ошибки. При этом состояние массива, в который должна была сохраниться считанная строка, неопределенно.
Функция fgets считывает из потока данных строку пока не встретится символ «новая строка» или не закончится файл или пока длина считываемой строки не превысит ограничение аргумента n (считывается не более чем n-1 символов).
После последнего прочитанного символа в массив s заносится признак конца строки (нулевой символ).
Если достигнут конец файла и несчитан не один символ или произошла ошибка, то возвращается NULL. Для того, чтобы отличить конец файла от ошибки используются функции feof и ferror.
В примере из заранее созданного файла test.txt располагающегося в одной папке с программой считываются данные с помощью функции fgets, пока не будет достигнут конец файла.
В файл заранее записаны следующие строки:
      Тест чтения.
      Проверка работы функции fgets.
Считанные данные и отчет о работе выводятся на консоль.
| Открытие файла: выполнено Как работает функция fgets()?Функция fgets() удаление буфера не корректно работает fgets() Fgets вместе с scanf не работает Почему fgets() не работает за пределами main() Функция fgets() читает из входного потока stream не более num-1 символов и помещает их в массив символов, адресуемый указателем str. Символы читаются до тех пор, пока не будет прочитан символ новой строки или значение EOF, либо пока не будет достигнут заданный предел. По завершении чтения символов сразу же за последним из них размещается нулевой символ. Символ новой строки сохраняется и становится частью массива, адресуемого элементом str. В версии C99 к параметрам str и stream применен квалификатор restrict. При успешном выполнении функция fgets() возвращает значение str, а в случае сбоя — нулевой указатель. В случае ошибки содержимое массива, к которому отсылает указатель str, не определено. Поскольку функция fgets() возвращает нулевой указатель и при возникновении ошибки, и при достижении конца файла, то для выяснения, что же произошло на самом деле, необходимо использовать функцию feof() или ferror(). Get a string from a stream. SyntaxParameters str numChars stream Return ValueRemarksfgetws reads the wide-character argument str as a multibyte-character string or a wide-character string according to whether stream is opened in text mode or binary mode, respectively. For more information about using text and binary modes in Unicode and multibyte stream-I/O, see Text and Binary Mode File I/O and Unicode Stream I/O in Text and Binary Modes. By default, this function’s global state is scoped to the application. To change this, see Global state in the CRT. Generic-Text Routine Mappings
Requirements
For additional compatibility information, see Compatibility. Получает строку из потока. СинтаксисПараметры str numChars Возвращаемое значениеКомментарииfgetws — это версия функции fgets для расширенных символов. Функция fgetws считывает аргумент str для расширенных символов как многобайтовый или расширенный символ, в зависимости от того, открыт ли stream в текстовом или двоичном режиме соответственно. Дополнительные сведения об использовании текстового и двоичного режима в Юникоде и многобайтовом потоковом вводе-выводе см. в разделах Файловый ввод-вывод в текстовом и двоичном режиме и Ввод-вывод в поток в кодировке Юникод в текстовом и двоичном режиме. По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это, см. раздел глобальное состояние в CRT. Универсальное текстовое сопоставление функций
Требования
Дополнительные сведения о совместимости см. в статье Compatibility. Функция Fgets в CФункция fgets определена в стандартной библиотеке C (stdio.h) и используется для чтения до n символов из указанного потока, такого как стандартный поток ввода или поток файлов) в строку, на которую указывает str. Функция C fgets считывает символы до тех пор, пока не встретит конец файла (EOF), символ новой строки или когда будет прочитано n-1 символов. В этом кратком руководстве будет рассказано, как использовать функцию fgets в программах на языке C. Основное использованиеОбщий синтаксис функции C fgets показан ниже: char * fgets ( char * str, int n, FILE * stream ) ; Функция принимает три параметра, а именно: Возвращаемые значения FgetsПри успешном выполнении функция вернет str. Если функция обнаруживает ошибку, она возвращает нулевой указатель. Точно так же, если функция завершается из-за EOF без прочитанных символов, она возвращает нулевой указатель.
Пример функции FgetsДавайте проиллюстрируем, как использовать функцию fgets в C. Рассмотрим пример кода, показанный ниже: intmain ( ) < В приведенном выше примере функция fgets откроет файл fgets.txt, прочитает первые 100–1 (99) символов и распечатает их на экране. Если предположить, что содержимое файла fgets.txt следующее:
Компиляция и выполнение приведенного выше кода должны распечатать строки выше.
ЗаключениеВ этом кратком руководстве описывается, как использовать функцию fgets на языке C для чтения символов из потока до тех пор, пока не будут выполнены определенные условия. |



