2013-08-05 2 views
1

Я запускаю скрипт lua через scite в Ubuntu 12.04. Когда я выполняю программу io.read. пример: (каждая команда находится на отдельной строке)scite не показывает вывод программы во всплывающем окне ubuntu

io.write("Please enter a number: ") 
user_input = io.read() 
print(user_input) 

Когда я выполнить программу, я не получаю отдельное всплывающее диалоговое окно с просьбой о входе пользователя.

я, на правой стороне коды, следующий вывод:

> lua5.1 "io_examples.lua" 
Please enter a number: nil 

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

ответ

0

Ноль, возвращенный io.read, может быть подсказкой о том, что во время чтения произошла ошибка. Вы можете проверить это, окружая ваше io.read заявление с утверждают:

local user_input = assert(io.read())

или

local user_input = assert(io.read("*number")).

Первоначально предполагалось, что вы получили: дескриптор файла, вызванный тем, что стандартный ввод (stdin) не установлен.

Более подробную информацию можно найти здесь:

http://www.lua.org/pil/21.1.html

http://www.lua.org/pil/8.html

+0

Спасибо за ответ! предложения и вот что произошло: io.write («Пожалуйста, введите число:») local user_input = assert (io.read()) print (user_input)> lua5.1 "io_examples.lua" lua5.1: io_examples.lua: 2: утверждение не удалось стек отслеживающий: \t [C]: в функции 'утверждать' \t io_examples.lua: 2: в основном куске \t [C]: Пожалуйста, введите число:> Выход код: 1 – user174743

+0

Оба предложения вернули тот же результат: Спасибо за ответ! Я попробовал оба предложения, и вот что произошло для обоих: > lua5.1 "io_examples.lua" lua5.1: io_examples.lua: 2: утверждение не выполнено! стека отслеживающий: \t [С]: в функции 'утверждать' \t io_examples.lua: 2: в основной порции \t [С]:? Введите число:> Код выхода: 1 – user174743

+0

Мое замешательство в том, что программа выполняется, но не позволяет пользователю вводить что-либо. Как сделать так, чтобы программа подождала, и когда пользователь действительно войдет в число или что-то еще, программа завершит выполнение? Есть ли еще одна программа, которую я должен установить, помимо scite, чтобы разрешить интерактивное окно? – user174743

0

Как я, наконец, получил программу для выполнения правильно был запуск его через Ubuntu терминал. Мне просто нужно было cd в директорию, где была расположена программа, а затем введите «lua». Я не получил аккуратное всплывающее окно, но код был выполнен правильно.

+0

Команда терминала была "lua io_examples.lua" – user174743