fgetc
, fgetwc
Čtení znaku ze streamu
Syntaxe
int fgetc(
FILE *stream
);
wint_t fgetwc(
FILE *stream
);
Parametry
stream
Ukazatel na FILE
strukturu.
Vrácená hodnota
fgetc
vrátí znak přečtený jako znak int
nebo vrátí EOF
označující chybu nebo konec souboru. fgetwc
vrátí jako wint_t
znak široký znak, který odpovídá čtení znaku, nebo se vrátí WEOF
k označení chyby nebo konce souboru. Pro obě funkce použijte feof
nebo ferror
rozlišovat mezi chybou a podmínkou ukončení souboru. Pokud dojde k chybě čtení, nastaví se indikátor chyby datového proudu. Pokud stream
je NULL
, fgetc
a fgetwc
vyvolat neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru. Pokud provádění může pokračovat, tyto funkce jsou nastaveny errno
na EINVAL
a vracet EOF
.
Poznámky
Každá z těchto funkcí čte jeden znak z aktuální pozice souboru přidruženého stream
k . 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.
fgetc
je ekvivalentní funkci getc
, ale je implementována pouze jako funkce, nikoli jako funkce a makro.
fgetwc
je verze širokého znaku fgetc
; čte c jako vícebajtový znak nebo široký znak při stream
otevření v textovém režimu nebo v binárním režimu.
Verze s příponou _nolock
jsou shodné s tím rozdílem, že nejsou chráněny před rušením jinými vlákny.
Další informace o zpracování širokých znaků a vícebajtových znaků v textovém a binárním režimu najdete v tématu Vstupně-výstupní operace datového proudu Unicode v textových a binárních režimech.
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ý |
---|---|---|---|
_fgettc |
fgetc |
fgetc |
fgetwc |
Požadavky
Function | Požadovaný hlavičkový soubor |
---|---|
fgetc |
<stdio.h> |
fgetwc |
<stdio.h> nebo <wchar.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
// 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 );
}
Vstup: crt_fgetc.txt
Line one.
Line two.
Výstup
Line one.
Line two.