Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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_tznak 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 getcelementu , ale jest implementowany tylko jako funkcja, a nie jako funkcja i makro.
fgetwcjest wersją fgetco 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.