Libchecker:checker read FPTYPE ex

From EjudgeWiki

Навигация: Главная страница/Система ejudge/Проверяющие программы/libchecker/Функции/Чтение вещественных значений/Чтение вещественного значения из заданного файла

Данные функции позволяют считывать вещественное значение из файла.

int checker_read_double_ex(FILE *f, checker_error_func_t error_func,
                          const char *name, int eof_error_flag, double *p_val);
int checker_read_long_double_ex(FILE *f, checker_error_func_t error_func,
                          const char *name, int eof_error_flag, long double *p_val);


Число считывается из файла f. Параметр name — это строка или текст, описывающий считываемое значение. Он используется в случае ошибки при выводе диагностических сообщений. Параметр eof_error_flag задает поведение функции в случае, если достигнут конец файла. Если параметр имеет ненулевое значение, то в случае невозможности чтения числа из-за достижения конца файла вызывается функция error_func для вывода сообщения об ошибке и завершения работы программы. Если параметр eof_error_flag равен 0, то в случае достижения конца файла возвращается значение -1. Параметр p_val — это адрес переменной, в которую должно быть помещено считанное значение.

Каждое число в файле должно быть отдельным элементом ввода, то есть при чтении числа сначала из файла считывается элемент ввода, после чего он конвертируется в число. Число должно соответствовать правилам записи вещественных чисел для стандартных библиотечных функций strtod и аналогичных. Поддерживаются числа в десятичной и шестнадцатиричной записи.

Если при чтении элемента ввода возникла ошибка ввода, программа завершается, и диагностируется внутренняя ошибка проверки. Для этого используется функция fatal_CF.

Функция предназначена для работы с текстовыми файлами. Если при чтении элемента ввода встречается символ, который недопустим в текстовом файле, вызывается функция error_func для выдачи сообщения об ошибке и завершения работы.

Если нарушен формат записи числа или число выходит за диапазон представимых значений заданного типа, вызывается функция error_func для выдачи сообщения об ошибке и завершения работы.

Функция возвращает значение 1 при успешном чтении и -1 при достижении конца файла, если параметр eof_error_flag равен 0. В случае возникновения ошибки, управление в вызывающую функцию не возвращается.