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


fgets, fgetws

Считывание строки из потока.

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

Параметры

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

  • n
    Наибольшее число символов для чтения.

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

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

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

См. раздел _doserrno, errno, _sys_errlist, and _sys_nerr для дополнительных сведений по этим и другим кодам возврата.

Заметки

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

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

fgetws считывает в расширенную строку str как в расширенных символов или многобайтовых символов в зависимости от того, открыт ли stream в текстовом или бинарном режиме. Дополнительные сведения о использовании текстового и бинарного режимов в юникоде и многобайтовом потоковом вводе-выводе см. в разделах Text and Binary Mode File I/O и Unicode Stream I/O in Text and Binary Modes.

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

Подпрограмма TCHAR.H

_UNICODE & _MBCS не определены

_MBCS определено

_UNICODE определено

_fgetts

fgets

fgets

fgetws

Требования

Функция

Обязательный заголовок

fgets

<stdio.h>

fgetws

<stdio.h> или <wchar.h>

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

Пример

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

#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\n" );
      else
         printf( "%s", line);
      fclose( stream );
   }
}

Input: crt_fgets.txt

Line one.
Line two.

Output

Line one.

Эквивалент в .NET Framework

См. также

Ссылки

Потоковый ввод-вывод

fputs, fputws

gets, _getws

puts, _putws