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


fgetc, fgetwc

Считывает символ из потока.

Синтаксис

int fgetc(
   FILE *stream
);
wint_t fgetwc(
   FILE *stream
);

Параметры

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

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

fgetc возвращает символ, считанный как int, или EOF для отображения ошибки или конца файла. fgetwc возвращается в виде wint_tширокого символа, соответствующего символу чтения или возврата WEOF , чтобы указать ошибку или конец файла. Для обеих функций следует использовать feof или ferror, чтобы различать ошибки и конец файла. Если возникает ошибка чтения, то для потока устанавливается индикатор ошибки. Если stream имеет значение NULL, fgetc и fgetwc вызов недопустимого обработчика параметров, как описано в разделе "Проверка параметров". Если выполнение может быть продолжено, эти функции устанавливают параметр errno в значение EINVAL и возвращают значение EOF.

Замечания

Каждая из этих функций считывает один символ в текущей позиции файла, связанного со stream. Функция затем увеличивает указатель связанного файла (если определен), чтобы он указывал на следующий символ. Если поток находится в конце файла, для него устанавливается индикатор конца файла.

fgetc эквивалентна getc, но реализуется только как функция, а не как функция и макрос.

fgetwc — это версия расширенных fgetcсимволов; она считывает c в виде многобайтового символа или широкого символа при stream открытии в текстовом режиме или двоичном режиме соответственно.

Версии с суффиксом _nolock идентичны, за исключением того, что они не защищены от вмешательства другими потоками.

Дополнительные сведения об обработке расширенных символов и многобайтовых символов в текстовых и двоичных режимах см . в режимах ввода-вывода потока Юникода в текстовых и двоичных режимах.

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

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

Подпрограмма TCHAR.H _UNICODE и _MBCS не определен _MBCS Определенные _UNICODE Определенные
_fgettc fgetc fgetc fgetwc

Требования

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

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

Пример

// crt_fgetc.c
// This program uses getc to read the first
// 80 input characters (or until the end of input)
// and place them into a string named buffer.

#include <stdio.h>
#include <stdlib.h>

int main( void )
{
   FILE *stream;
   char buffer[81];
   int  i, ch;

   // Open file to read line from:
   fopen_s( &stream, "crt_fgetc.txt", "r" );
   if( stream == NULL )
      exit( 0 );

   // Read in first 80 characters and place them in "buffer":
   ch = fgetc( stream );
   for( i=0; (i < 80 ) && ( feof( stream ) == 0 ); i++ )
   {
      buffer[i] = (char)ch;
      ch = fgetc( stream );
   }

   // Add null to end string
   buffer[i] = '\0';
   printf( "%s\n", buffer );
   fclose( stream );
}

Input: crt_fgetc.txt

Line one.
Line two.

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

Line one.
Line two.

См. также

Потоковый ввод-вывод
fputc, fputwc
getc, getwc