Libchecker:checker read SRC FPTYPE
Навигация: Главная страница/Система 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. В случае возникновения ошибки чтения данных, управление в вызывающую функцию не возвращается.