fgets c что это

Описание функций языка Си

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, пока не будет достигнут конец файла.

В файл заранее записаны следующие строки:
&nbsp&nbsp&nbsp&nbsp&nbsp Тест чтения.
&nbsp&nbsp&nbsp&nbsp&nbsp Проверка работы функции fgets.

Считанные данные и отчет о работе выводятся на консоль.

Открытие файла: выполнено
Считаны строки:
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Тест чтения.
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Проверка работы функции fgets.
Чтение файла закончено
Закрытие файла: выполнено

Источник

Как работает функция fgets()?

Функция fgets() удаление буфера
Доброго времени суток. Нужна помощь. Написал программу с использованием функции fgets(). Как.

не корректно работает fgets()
здравствуйте, пишу код для удаления строки из файла(файл c именем fname с данными), проблема с.

Fgets вместе с scanf не работает
Доброго времени суток. Я начинающий C программист. При создании своего файлового менеджера, я.

Почему fgets() не работает за пределами main()
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.

Syntax

Parameters

str
Storage location for data.

numChars
Maximum number of characters to read.

stream
Pointer to FILE structure.

Return Value

Remarks

fgetws 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

TCHAR.H routine _UNICODE & _MBCS not defined _MBCS defined _UNICODE defined
_fgetts fgets fgets fgetws

Requirements

Function Required header
fgets
fgetws or

For additional compatibility information, see Compatibility.

Источник

Получает строку из потока.

Синтаксис

Параметры

str
Место хранения данных.

numChars
Максимальное число считываемых символов.

Возвращаемое значение

Комментарии

fgetws — это версия функции fgets для расширенных символов.

Функция fgetws считывает аргумент str для расширенных символов как многобайтовый или расширенный символ, в зависимости от того, открыт ли stream в текстовом или двоичном режиме соответственно. Дополнительные сведения об использовании текстового и двоичного режима в Юникоде и многобайтовом потоковом вводе-выводе см. в разделах Файловый ввод-вывод в текстовом и двоичном режиме и Ввод-вывод в поток в кодировке Юникод в текстовом и двоичном режиме.

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это, см. раздел глобальное состояние в CRT.

Универсальное текстовое сопоставление функций

TCHAR.H ассемблер _UNICODE & _MBCS не определено _MBCS определяется _UNICODE определяется
_fgetts fgets fgets fgetws

Требования

Функция Обязательный заголовок
fgets
fgetws или

Дополнительные сведения о совместимости см. в статье 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

Давайте проиллюстрируем, как использовать функцию fgets в C. Рассмотрим пример кода, показанный ниже:

intmain ( ) <
FILE * fptr ;
char str [ 100 ] ;

В приведенном выше примере функция fgets откроет файл fgets.txt, прочитает первые 100–1 (99) символов и распечатает их на экране.

Если предположить, что содержимое файла fgets.txt следующее:

Hello world!, this is fgets function in C.

Компиляция и выполнение приведенного выше кода должны распечатать строки выше.

СОВЕТ: в отличие от функции gets, функция fgets более безопасна, поскольку она проверяет границы массива, предотвращая переполнение буфера.

Заключение

В этом кратком руководстве описывается, как использовать функцию fgets на языке C для чтения символов из потока до тех пор, пока не будут выполнены определенные условия.

Источник

Читайте также:  что делать если вапорессо осмал парит сам
Сказочный портал