_fgetchar
, _fgetwchar
Přečte znak z stdin
.
Syntaxe
int _fgetchar( void );
wint_t _fgetwchar( void );
Vrácená hodnota
_fgetchar vrátí znak přečtený int
jako znak nebo vrátí EOF
označující chybu nebo konec souboru. _fgetwchar vrátí wint_t
jako znak široký znak, který odpovídá znaku pro čtení nebo se vrátíWEOF
, aby značil chybu nebo konec souboru. Pro obě funkce použijte feof
nebo ferror
rozlišovat mezi chybou a podmínkou ukončení souboru.
Poznámky
Tyto funkce čtou jeden znak z stdin
. Funkce pak zvýší přidružený ukazatel souboru (pokud je definován) tak, aby odkazovat na další znak. Pokud je datový proud na konci souboru, nastaví se indikátor koncového souboru datového proudu.
_fgetchar
je ekvivalent fgetc( stdin )
. Je to také ekvivalent getchar
, ale implementuje se pouze jako funkce, nikoli jako funkce a makro. _fgetwchar
je širokoznační verze ._fgetchar
Tyto funkce nejsou kompatibilní se standardem ANSI.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Mapování rutin obecného textu
Rutina Tchar.h | _UNICODE a _MBCS není definován |
_MBCS definovaný |
_UNICODE definovaný |
---|---|---|---|
_fgettchar |
_fgetchar |
_fgetchar |
_fgetwchar |
Požadavky
Function | Požadovaný hlavičkový soubor |
---|---|
_fgetchar |
<stdio.h> |
_fgetwchar |
<stdio.h> nebo <wchar.h> |
Konzola není podporována v aplikacích pro Univerzální platforma Windows (UPW). Standardní stream zpracovává, které jsou přidružené ke konzole –stdin
stdout
a stderr
– musí být přesměrovány, aby je funkce běhu jazyka C mohly používat v aplikacích pro UPW. Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
// 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.