_fgetchar
, _fgetwchar
Odczytuje znak z stdin
.
Składnia
int _fgetchar( void );
wint_t _fgetwchar( void );
Wartość zwracana
_fgetchar zwraca znak odczytany jako znak int
lub zwraca EOF
wartość , aby wskazać błąd lub koniec pliku. _fgetwchar zwraca jako wint_t
znak szeroki odpowiadający odczytowi znaku lub zwraca wartość WEOF
wskazującą błąd lub koniec pliku. W przypadku obu funkcji użyj polecenia feof
lub ferror
, aby odróżnić błąd od warunku końca pliku.
Uwagi
Te funkcje odczytują pojedynczy znak z klasy stdin
. Następnie funkcja zwiększa skojarzony wskaźnik pliku (jeśli jest zdefiniowany) w celu wskazania następnego znaku. Jeśli strumień znajduje się na końcu pliku, zostanie ustawiony wskaźnik końca pliku dla strumienia.
_fgetchar
jest równoważne z fgetc( stdin )
. Jest ona również równoważna getchar
funkcji , ale zaimplementowana tylko jako funkcja, a nie jako funkcja i makro. _fgetwchar
jest wersją o szerokim znaku ._fgetchar
Te funkcje nie są zgodne ze standardem ANSI.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Mapowania procedur tekstu ogólnego
Procedura tchar.h | _UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_UNICODE zdefiniowany |
---|---|---|---|
_fgettchar |
_fgetchar |
_fgetchar |
_fgetwchar |
Wymagania
Function | Wymagany nagłówek |
---|---|
_fgetchar |
<stdio.h> |
_fgetwchar |
<stdio.h> lub <wchar.h> |
Konsola nie jest obsługiwana w aplikacjach platformy platforma uniwersalna systemu Windows (UWP). Standardowe dojścia strumienia skojarzone z konsolą —stdin
stdout
i stderr
— muszą zostać przekierowane, zanim funkcje czasu wykonywania języka C będą mogły ich używać w aplikacjach platformy UWP. Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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.