Libchecker:checker read SRC FPTYPE

From EjudgeWiki

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

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

int checker_read_in_double(const char *name, int eof_error_flag, double *p_val);
int checker_read_out_double(const char *name, int eof_error_flag, double *p_val);
int checker_read_corr_double(const char *name, int eof_error_flag, double *p_val);
int checker_read_in_long_double(const char *name, int eof_error_flag, long double *p_val);
int checker_read_out_long_double(const char *name, int eof_error_flag, long double *p_val);
int checker_read_corr_long_double(const char *name, int eof_error_flag, long double *p_val);

Здесь _in_ в имени функции означает, что чтение ведется из входного файла, _out_ — чтение ведется из файла с результатом работы тестируемой программы, _corr_ — чтение ведется из файла с правильным ответом.

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

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

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