Итак, я пытался прочитать файл следующим методом
file=io.open('test.txt', 'r')
io.input(file)
a=io.read()
print(a)
io.close(file)
Проблема в том, что я действительно не знаю, как перенаправить io.read обратно в поток stdin. Я пытался:
io.input(stdin)
a=io.read()
print(a)
Есть ли способ заставить это работать?
Обновлено: Проблема решена путем использования io.stdin вместо stdin
Вы можете вызвать io.input(io.stdin)
, чтобы вернуть стандартный ввод по умолчанию.
@RazorVE Потому что вы закрыли файл вручную
я понятия не имею, как это должно быть сделано. Можете сделать пример? @Спар
@RazorVE Извините, неправильно понял документы, прочитайте исходный код. Я отредактировал ответ.
Думаю, вот как это улажено
Вместо того, чтобы направлять поток на стандартный ввод, Lua фактически разрешает file:read(), что позволяет нам напрямую читать из файла.
Я думал, вы специально сделали io.read(file). Он принимает имя файла, кстати.
Я попробовал это, он поднял «lua: test.lua: 7: стандартный входной файл закрыт»