Uwaga
Dostęp do tej strony wymaga autoryzacji. Może 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 getc(
FILE *stream
);
wint_t getwc(
FILE *stream
);
Parametry
stream
Strumień wejściowy.
Wartość zwracana
Zwraca odczyt znaku. Aby wskazać błąd odczytu lub warunek końca pliku, getc
zwraca wartość EOF
i getwc
zwraca wartość WEOF
. W przypadku getc
polecenia użyj polecenia ferror
lub feof
, aby sprawdzić błąd lub pod kątem końca pliku. Jeśli stream
element to NULL
, getc
i getwc
wywołaj nieprawidłową procedurę obsługi parametrów zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonanie jest dozwolone do kontynuowania, te funkcje zwracają EOF
(lub WEOF
dla getwc
), i ustaw wartość EINVAL
errno
.
Aby uzyskać więcej informacji na temat kodów zwracanych, zobacz errno
, _doserrno
, _sys_errlist
i _sys_nerr
.
Uwagi
Każda rutyna odczytuje pojedynczy znak z pliku w bieżącej pozycji i zwiększa skojarzony wskaźnik pliku (jeśli jest zdefiniowany) w celu wskazania następnego znaku. Plik jest skojarzony z elementem stream
.
Te funkcje blokują wątek wywołujący i dlatego są bezpieczne wątkowo. Aby uzyskać wersję nieblokającą, zobacz _getc_nolock
_getwc_nolock
, .
Postępuj zgodnie z rutynowymi uwagami.
Procedura | Uwagi |
---|---|
getc |
Taki sam jak fgetc , ale zaimplementowany jako funkcja i jako makro. |
getwc |
Wersja z szerokim znakiem .getc Odczytuje znak wielobajtowy lub szeroki znak zgodnie z tym, czy stream jest otwarty w trybie tekstowym, czy w trybie binarnym. |
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 |
---|---|---|---|
_gettc |
getc |
getc |
getwc |
Wymagania
Procedura | Wymagany nagłówek |
---|---|
getc |
<stdio.h> |
getwc |
<stdio.h> lub <wchar.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// crt_getc.c
// Use getc to read a line from a file.
#include <stdio.h>
int main()
{
char buffer[81];
int i, ch;
FILE* fp;
// Read a single line from the file "crt_getc.txt".
fopen_s(&fp, "crt_getc.txt", "r");
if (!fp)
{
printf("Failed to open file crt_getc.txt.\n");
exit(1);
}
for (i = 0; (i < 80) && ((ch = getc(fp)) != EOF)
&& (ch != '\n'); i++)
{
buffer[i] = (char) ch;
}
// Terminate string with a null character
buffer[i] = '\0';
printf( "Input was: %s\n", buffer);
fclose(fp);
}
Dane wejściowe: crt_getc.txt
Line one.
Line two.
Wynik
Input was: Line one.
Zobacz też
We/Wy strumienia
fgetc
, fgetwc
_getch
, _getwch
putc
, putwc
ungetc
, ungetwc