Fgetchar — различия между версиями
Материал из Pro-Pawn Wiki
(Новая страница: «{{DISPLAYTITLE:fgetchar}} {{Description | Записывает в файл 1 символ. }} {{Params|File: handle, value, bool: utf8 {{=}} true}} {{Param | File…») |
VVWVV (обсуждение | вклад) (Опечатка в описании) |
||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE:fgetchar}} | {{DISPLAYTITLE:fgetchar}} | ||
{{Description | {{Description | ||
− | | | + | | Считывает 1 символ из файла. |
}} | }} | ||
{{Params|File: handle, value, bool: utf8 {{=}} true}} | {{Params|File: handle, value, bool: utf8 {{=}} true}} |
Версия 21:42, 23 июля 2018
Описание:
Считывает 1 символ из файла.
Параметры:
(File: handle, value, bool: utf8 = true) |
File: handle | Хендл открытого файла. |
value | Неиспользуемый аргумент (см. прим. ниже). |
bool: utf8 | Указывает, следует ли считывать символ в кодировке UTF-8 (от 1 до 6 байт на символ) вместо ASCII (1 байт) (необязательный параметр, по умолчанию символы считываются в UTF-8). |
Возвращаемое значение:
Код символа, считанного из файла, либо
EOF
, если достигнут конец файла.
Баг Pawn |
Попытка передать функции неправильный хендл (т.е. не возвращённый функциями fopen() или ftemp() , либо уже закрытый с помощью fclose() ) приводит к падению сервера.
|
Параметр value никаким образом не используется. Скорее всего, он оказался в заголовке функции по ошибке путём copy-paste заголовка fputchar() - это предположение подтверждается тем, что в последующих версиях Pawn данный параметр был удалён из заголовка функции.
|
Пример использования:
main()
{
// Создадим пустой файл и запишем в него символы 'a', 'b', 'c' и 'd'
new File: f = fopen("1.txt", io_write);
for (new c = 'a'; c < 'e'; c++)
fputchar(f, c);
fclose(f);
// Откроем файл, считаем строку и выведем её в консоль
new buffer[128];
f = fopen("1.txt", io_read);
new pos = -1;
do {} while ((buffer[++pos] = fgetchar(f, 0)) != EOF);
buffer[pos] = '\0';
fclose(f);
print(buffer); // Вывод: "abcd"
}
{
// Создадим пустой файл и запишем в него символы 'a', 'b', 'c' и 'd'
new File: f = fopen("1.txt", io_write);
for (new c = 'a'; c < 'e'; c++)
fputchar(f, c);
fclose(f);
// Откроем файл, считаем строку и выведем её в консоль
new buffer[128];
f = fopen("1.txt", io_read);
new pos = -1;
do {} while ((buffer[++pos] = fgetchar(f, 0)) != EOF);
buffer[pos] = '\0';
fclose(f);
print(buffer); // Вывод: "abcd"
}
См. также: