fgetc, getc
Определено в заголовочном файле <stdio.h> | ||
|---|---|---|
int fgetc( FILE* stream ); | (1) | |
int getc( FILE* stream ); | (2) |
1) Считывает следующий символ из указанного входного потока.
2) То же, что и
fgetc, за исключением того, что если getc реализован как макрос, он может вычислять stream более одного раза, поэтому соответствующий аргумент не должен быть выражением с побочными эффектами.Параметры
| stream | - | поток, из которого считывается символ |
Возвращаемое значение
В случае успеха возвращает полученный символ как unsignedchar, преобразованный в int. В случае ошибки возвращает EOF.
Если ошибка вызвана достижением конца файла, дополнительно устанавливает индикатор eof (см. feof()) для stream. Если ошибка вызвана другой причиной, устанавливает индикатор error (см. ferror()) для stream.
Пример
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
const char* fname = "/tmp/unique_name.txt"; // or tmpnam(NULL);
int is_ok = EXIT_FAILURE;
FILE* fp = fopen(fname, "w+");
if (!fp)
{
perror("File opening failed");
return is_ok;
}
fputs("Hello, world!\n", fp);
rewind(fp);
int c; // note: int, not char, required to handle EOF
while ((c = fgetc(fp)) != EOF) // standard C I/O file reading loop
putchar(c);
if (ferror(fp))
puts("I/O error when reading");
else if (feof(fp))
{
puts("End of file is reached successfully");
is_ok = EXIT_SUCCESS;
}
fclose(fp);
remove(fname);
return is_ok;
}
Возможный вывод:
Hello, world! End of file is reached successfully
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
- 7.21.7.1 Функция fgetc (стр.: TBD)
- 7.21.7.5 Функция getc (стр.: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.21.7.1 Функция fgetc (стр.: 240–241)
- 7.21.7.5 Функция getc (стр.: 242)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.21.7.1 Функция fgetc (стр.: 330)
- 7.21.7.5 Функция getc (стр.: 332)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.19.7.1 Функция fgetc (стр.: 296)
- 7.19.7.5 Функция getc (стр.: 297–298)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 4.9.7.1 Функция fgetc
- 4.9.7.5 Функция getc
См. также
считывает символ из stdin (функция) |
|
|
(удалена в C11)(C11) | считывает строку символов из stdin (функция) |
| записывает символ в файловый поток (функция) |
|
| возвращает символ в файловый поток (функция) |
|
Документация C++ для fgetc, getc |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/io/fgetc