Difference between revisions of "Libchecker:checker read line"
(New page: Навигация: Главная страница/Система ejudge/Проверяющие программы/libchecker/[[Libchecker:Функции|Фун...) |
|||
Line 11: | Line 11: | ||
Если же этот параметр имеет ненулевое значение, то программа завершится либо с [[ошибка неправильного формата результата|ошибкой неправильного формата результата]] при чтении из файла с индексом 1 (результат работы тестируемой программы), либо завершится с [[внутренняя ошибка проверки|внутренней ошибкой проверки]] при чтении из файла с индексами 0 или 2 (входные данные и правильный ответ соответственно). | Если же этот параметр имеет ненулевое значение, то программа завершится либо с [[ошибка неправильного формата результата|ошибкой неправильного формата результата]] при чтении из файла с индексом 1 (результат работы тестируемой программы), либо завершится с [[внутренняя ошибка проверки|внутренней ошибкой проверки]] при чтении из файла с индексами 0 или 2 (входные данные и правильный ответ соответственно). | ||
− | В переменную, на которую указывает параметр <tt>out_str<tt>, будет записана считанная строка. Строка дополняется нулевым байтом. Пробельные символы (включая \n) из конца строки не удаляются. Память для содержимого строки выделяется на куче с помощью функций [[libchecker:xmalloc|xmalloc]] и [[libchecker:xrealloc|xrealloc]]. | + | В переменную, на которую указывает параметр <tt>out_str</tt>, будет записана считанная строка. Строка дополняется нулевым байтом. Пробельные символы (включая \n) из конца строки не удаляются. Память для содержимого строки выделяется на куче с помощью функций <tt>[[libchecker:xmalloc|xmalloc]]</tt> и <tt>[[libchecker:xrealloc|xrealloc]]</tt>. |
Если при чтении произошла ошибка ввода, программа завершается, и диагностируется [[внутренняя ошибка проверки]]. | Если при чтении произошла ошибка ввода, программа завершается, и диагностируется [[внутренняя ошибка проверки]]. | ||
Функция возвращает длину считанной строки, либо значение -1, если был достигнут конец файла, и параметр <tt>eof_error_flag</tt> равен 0. | Функция возвращает длину считанной строки, либо значение -1, если был достигнут конец файла, и параметр <tt>eof_error_flag</tt> равен 0. |
Latest revision as of 19:55, 4 July 2010
Навигация: Главная страница/Система ejudge/Проверяющие программы/libchecker/Функции/Чтение файла как текста/checker_read_line
Функция checker_read_line — чтение одной строки текста из текстового файла.
int checker_read_line(int ind, const char *name, int eof_error_flag, char **out_str);
Функция считывает одну строку текста из файла, задаваемого своим индексом ind в память. Параметр name — это дополнительный пояснительный текст, который будет выводиться в случае ошибки. В частности, этот текст может задавать название считываемого из файла параметра (например, "имя узла графа"). Параметр eof_error_flag определяет, должна ли диагностироваться ошибка в случае, если выполняется попытка чтения строки после конца файла. Если параметр eof_error_flag равен 0, то при попытке чтения после конца файла функция просто вернет значение -1. Если же этот параметр имеет ненулевое значение, то программа завершится либо с ошибкой неправильного формата результата при чтении из файла с индексом 1 (результат работы тестируемой программы), либо завершится с внутренней ошибкой проверки при чтении из файла с индексами 0 или 2 (входные данные и правильный ответ соответственно).
В переменную, на которую указывает параметр out_str, будет записана считанная строка. Строка дополняется нулевым байтом. Пробельные символы (включая \n) из конца строки не удаляются. Память для содержимого строки выделяется на куче с помощью функций xmalloc и xrealloc.
Если при чтении произошла ошибка ввода, программа завершается, и диагностируется внутренняя ошибка проверки.
Функция возвращает длину считанной строки, либо значение -1, если был достигнут конец файла, и параметр eof_error_flag равен 0.