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