fgetc
, fgetwc
Odczytywanie znaku ze strumienia.
Składnia
int fgetc(
FILE *stream
);
wint_t fgetwc(
FILE *stream
);
Parametry
stream
Wskaźnik do FILE
struktury.
Wartość zwracana
fgetc
Zwraca znak odczytany jako znak int
lub zwraca EOF
, aby wskazać błąd lub koniec pliku. fgetwc
zwraca jako wint_t
znak szeroki odpowiadający znakowi odczytowi 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. Jeśli wystąpi błąd odczytu, zostanie ustawiony wskaźnik błędu dla strumienia. Jeśli stream
element to NULL
, fgetc
i fgetwc
wywołaj nieprawidłową procedurę obsługi parametrów zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, te funkcje są ustawione errno
na EINVAL
i zwracają wartość EOF
.
Uwagi
Każda z tych funkcji odczytuje pojedynczy znak z bieżącej pozycji pliku skojarzonego z stream
. 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.
fgetc
jest odpowiednikiem getc
elementu , ale jest implementowany tylko jako funkcja, a nie jako funkcja i makro.
fgetwc
jest wersją fgetc
o szerokim znaku ; odczytuje c jako znak wielobajtowy lub szeroki znak, gdy stream
jest otwarty w trybie tekstowym lub w trybie binarnym, odpowiednio.
Wersje z sufiksem _nolock
są identyczne, z tą różnicą, że nie są chronione przed ingerencją innych wątków.
Aby uzyskać więcej informacji na temat przetwarzania znaków szerokich i znaków wielobajtowych w trybach tekstowych i binarnych, zobacz We/Wy strumienia Unicode w trybach tekstowych i binarnych.
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 |
---|---|---|---|
_fgettc |
fgetc |
fgetc |
fgetwc |
Wymagania
Function | Wymagany nagłówek |
---|---|
fgetc |
<stdio.h> |
fgetwc |
<stdio.h> lub <wchar.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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 );
}
Dane wejściowe: crt_fgetc.txt
Line one.
Line two.
Wynik
Line one.
Line two.