В Scilab 5.5.2 при использовании функции meof(f) зависает командное окно. В чем проблема? В SkiNotes написал следующий листинг:f=mopen('C:\TEK0000.txt');
i=0;
while ~meof(f) do
i=i+1;
end
mclose(f);
Нажимаю F5 (Сохранить и выполнить) и командное окно зависает. В чем причина и как избавиться от зависания?

21 Авг 2019 в 06:12
179 +1
0
Ответы
1

Проблема заключается в том, что в вашем цикле while условие ~meof(f) никогда не станет false, так как вы не читаете данные из файла f внутри цикла. Из-за этого цикл никогда не завершается, и скрипт зависает.

Чтобы избежать этой проблемы, вам нужно добавить чтение данных из файла в цикл. Например, вы можете использовать функцию mgetl для чтения строки из файла:

f = mopen('C:\TEK0000.txt');
i = 0;
while ~meof(f) do
l = mgetl(f); //читаем строку из файла
i = i + 1;
end
mclose(f);

Теперь цикл завершится после того, как все строки файла будут прочитаны, и скрипт не будет зависать.

Помните также, что необходимо проверять закрылся ли файл после использования mclose(f), чтобы предотвратить утечку памяти.

20 Апр в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 91 905 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир