Проблемы с io.read() в wxLUA (не ждет ввода пользователя, всегда возвращает ноль)

Я только вхожу в Lua, и у меня возникают проблемы с пользовательским вводом. Независимо от того, что я делаю, io.read() всегда возвращает ноль.

Это то, что я пробовал, ничего не работает.

name = io.read()
print(name)

name = io.read(7)
print(name)

print(io.read:())

Все это просто напечатать ноль. Я думаю, что происходит name установлен в io.read() до того, как пользователь сможет ввести значение.

Это:

 while not name do name = io.read()
 print name

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

Я использую среду wxLua для Windows, в диалоговой версии эти программы работают нормально, но вы, очевидно, не можете сделать так много с этим.

1 ответ

Я не уверен, почему вы пытаетесь io.read(7) (как это будет читать 7 байт), но следующий скрипт работает для меня с wxlua (хотя я использую свою собственную скомпилированную библиотеку wxlua, которую вы можете получить здесь):

require('wx')
io.write("Enter something: ")
local value = io.read()
io.write(value, "\n")
Другие вопросы по тегам