Эта строка читает строку из файла:
readline(my_input, input_line);
Эта строка пытается прочитать (целое) целое число из строки:
read(input_line, length);
Не возвращает длину файла (или строки). Вы не предоставляете файл, который пытаетесь прочитать (было бы лучше, если бы вы это сделали - см. this ), но я предполагаю, что он не содержит целое число и, следовательно, ваше сообщение об ошибке .
Если вы хотите получить длину любого текстового файла, вам нужно прочитать каждую строку в файле, найти длину каждой и добавить их. Легко найти длину каждой строки, потому что тип line
имеет атрибут 'length
, поэтому длина каждой строки будет:
input_line'length
Кстати, эта строка не будет отображать то, что вы только что прочитали, потому что чтение (в случае успеха) является разрушительным :
writeline(output, input_line); -- optional, write to std out
(«Деструктивное чтение» - это чтение, которое удаляет и считывает данные.)