Libchecker:checker read line ex
Навигация: Главная страница/Система ejudge/Проверяющие программы/libchecker/Функции/Чтение файла как текста/checker_read_line_ex
Функция checker_read_line_ex — чтение одной строки текста из текстового файла.
int checker_read_line_ex( FILE *f, checker_error_func_t error_func, const char *name, int eof_error_flag, char **out_str);
Функция считывает одну строку текста из файла f в память. Параметр name — это дополнительный пояснительный текст, который будет выводиться в случае ошибки. В частности, этот текст может задавать название считываемого из файла параметра (например, "имя узла графа"). Параметр eof_error_flag определяет, должна ли диагностироваться ошибка в случае, если выполняется попытка чтения строки после конца файла. Если параметр eof_error_flag равен 0, то при попытке чтения после конца файла функция просто вернет значение -1. Если же этот параметр имеет ненулевое значение, то в случае достижения конца файла будет вызвана функция вывода сообщения об ошибке, переданная в параметре error_func.
Функция предназначена для работы с текстовыми файлами. Если при чтении строки в файле был считан символ, который не может находиться в текстовом файле, вызывается функция вывода сообщения об ошибке, переданная в параметре error_func.
В переменную, на которую указывает параметр out_str, будет записана считанная строка. Строка дополняется нулевым байтом. Пробельные символы (включая \n) из конца строки не удаляются. Память для содержимого строки выделяется на куче с помощью функций xmalloc и xrealloc.
Если при чтении произошла ошибка ввода, программа завершается, и диагностируется внутренняя ошибка проверки. Для этого используется функция fatal_CF.
Функция возвращает длину считанной строки, либо значение -1, если был достигнут конец файла, и параметр eof_error_flag равен 0.