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.