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


_fgetchar, _fgetwchar

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

Синтаксис

int _fgetchar( void );
wint_t _fgetwchar( void );

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

_fgetchar возвращает символ, считывающийся как или int возвращающийсяEOF, чтобы указать ошибку или конец файла. _fgetwchar возвращается как wint_tширокий символ, соответствующий символу чтения или возврата WEOF символов, чтобы указать ошибку или конец файла. Для обеих функций следует использовать feof или ferror, чтобы различать ошибки и конец файла.

Замечания

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

_fgetchar эквивалентна fgetc( stdin ). Он также эквивалентен getchar, но реализуется только как функция, а не как функция и макрос. _fgetwchar — версия _fgetchar с расширенными символами.

Эти функции несовместимы со стандартом ANSI.

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

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

Подпрограмма Tchar.h _UNICODE и _MBCS не определен _MBCS Определенные _UNICODE Определенные
_fgettchar _fgetchar _fgetchar _fgetwchar

Требования

Функция Обязательный заголовок
_fgetchar <stdio.h>
_fgetwchar <stdio.h> или <wchar.h>

Консоль не поддерживается в приложениях универсальная платформа Windows (UWP). Стандартные дескрипторы потока, связанные с консолью,stdinstdout и stderrдолжны быть перенаправлены, прежде чем функции времени выполнения C могут использовать их в приложениях UWP. Дополнительные сведения о совместимости см. в разделе Совместимость.

Пример

// crt_fgetchar.c
// This program uses _fgetchar 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 )
{
   char buffer[81];
   int  i, ch;

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

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

      Line one.
Line two.Line one.
Line two.

См. также

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