Поделиться через


fgets, fgetws

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

Синтаксис

char *fgets(
   char *str,
   int numChars,
   FILE *stream
);
wchar_t *fgetws(
   wchar_t *str,
   int numChars,
   FILE *stream
);

Параметры

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

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

stream
Указатель на структуру FILE .

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

Каждая из этих функций возвращает str. NULL возвращается в случае ошибки или достижения конца файла. Чтобы определить, произошла ли ошибка, используйте feof или ferror. Если str или stream является пустым указателем или numChars меньше или равно нулю, эта функция вызывает обработчик недопустимых параметров, как описано в разделе проверки параметров. Если выполнение может быть продолжено, для errno задается значение EINVAL , и функция возвращает значение NULL.

Дополнительные сведения о кодах возврата см. в разделе errno, _doserrno_sys_errlistи _sys_nerr.

Замечания

Функция fgets считывает строку из входного аргумента stream и сохраняет ее в str. fgets считывает символы из текущей позиции потока в и в том числе первый новый символ, до конца потока или до тех пор, пока число символов чтения равно numChars - 1, в зависимости от того, что происходит в первую очередь. Результат сохраняется в str с добавлением символа NULL. Считываемый символ новой строки (если такой есть) включается в строку.

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

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

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

Сопоставления подпрограмм универсального текста

TCHAR.H рутина _UNICODE и _MBCS не определен _MBCS Определенные _UNICODE Определенные
_fgetts fgets fgets fgetws

Требования

Function Обязательный заголовок
fgets <stdio.h>
fgetws <stdio.h> или <wchar.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

Пример

// crt_fgets.c
// This program uses fgets to display
// the first line from a file.

#include <stdio.h>

int main( void )
{
   FILE *stream;
   char line[100];

   if( fopen_s( &stream, "crt_fgets.txt", "r" ) == 0 )
   {
      if( fgets( line, 100, stream ) == NULL)
         printf( "fgets error\numChars" );
      else
         printf( "%s", line);
      fclose( stream );
   }
}

Ввод: crt_fgets.txt

Line one.
Line two.

Выходные данные

Line one.

См. также

Потоковый ввод-вывод
fputs, fputws
gets, _getws
puts, _putws