fgetc, fgetwc
Znak należy odczytać strumienia.
int fgetc(
FILE *stream
);
wint_t fgetwc(
FILE *stream
);
Parametry
- stream
Wskaźnik, aby FILE struktury.
Wartość zwracana
fgetcZwraca znak czytane jako int lub zwraca EOF aby wskazać błąd lub koniec pliku.fgetwcZwraca, jako wint_t, szeroki znak, który odpowiada znak odczytu lub zwraca WEOF aby wskazać błąd lub koniec pliku.Obie funkcje, użyj feof lub ferror do rozróżniania błąd i warunek końca pliku.Jeśli wystąpi błąd odczytu, wskaźnik błędu dla strumienia jest ustawiona.Jeśli stream jest NULL, fgetc i fgetwc wywołania obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, ustaw te funkcje errno do EINVAL i zwraca EOF.
Uwagi
Każda z tych funkcji odczytuje pojedynczy znak z bieżącego położenia pliku skojarzonego z stream.Funkcja zwiększa następnie wskaźnik skojarzony plik (Jeżeli zdefiniowane), wskaż polecenie Następny znak.Jeżeli strumień jest na koniec pliku, jest ustawiony wskaźnik końca pliku dla strumienia.
fgetcjest równoważne z getc, ale jest implementowana tylko jako funkcja, a nie jako funkcja i makra.
fgetwcWersja szerokich znaków jest fgetc; odczytuje c jako znaków wielobajtowych lub szerokiego znaku zgodnie z czy stream jest otwierany w trybie tekst lub binarny.
Wersje z _nolock sufiks są identyczne, z wyjątkiem, że nie są chronione przez inne wątki od ingerencji.
Aby uzyskać więcej informacji dotyczących przetwarzania szerokości znaków i znaków wielobajtowych, tekstu i trybów binarnych, zobacz Unicode strumień we/wy w binarnym trybu tekstowego i.
Tekst rodzajowy rutynowych mapowania
TCHAR.Rutynowe H |
_UNICODE & Nie zdefiniowano _MBCS |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_fgettc |
fgetc |
fgetc |
fgetwc |
Wymagania
Funkcja |
Wymaganego nagłówka |
---|---|
fgetc |
<stdio.h> |
fgetwc |
<stdio.h> lub <wchar.h> |
Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.
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.
Dane wyjściowe
Line one.
Line two.