Lua - получить ввод командной строки от пользователя? - PullRequest
16 голосов
/ 29 ноября 2009

В моей программе lua я хочу остановиться и запросить подтверждение у пользователя, прежде чем продолжить операцию. Я не уверен, как остановить и ждать ввода пользователя, как это сделать?

Ответы [ 6 ]

30 голосов
/ 29 ноября 2009
local answer
repeat
   io.write("continue with this operation (y/n)? ")
   io.flush()
   answer=io.read()
until answer=="y" or answer=="n"
13 голосов
/ 29 ноября 2009

Посмотрите на библиотеку io, которая по умолчанию имеет стандартный ввод в качестве входного файла по умолчанию:

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

7 голосов
/ 13 декабря 2012

Я работал с таким кодом. Я напишу это так, как это будет работать:

io.write("continue with this operation (y/n)?")
answer=io.read()
if answer=="y" then
   --(put what you want it to do if you say y here)
elseif answer=="n" then
   --(put what you want to happen if you say n)
end
1 голос
/ 19 апреля 2013

попробуйте использовать следующий код

m=io.read() if m=="yes" then (insert functions here) end

1 голос
/ 14 февраля 2013

Я использую:

     print("Continue (y/n)?")
re = io.read()
if re == "y" or "Y" then
    (Insert stuff here)
elseif re == "n" or "N" then
    print("Ok...")
end
0 голосов
/ 20 декабря 2013
print("Continue (y/n)?")
re = io.read()
if re == "y" or "Y" then
    (Insert stuff here)
elseif re == "n" or "N" then
    print("Ok...")
end

Из того, что я сделал (немного), я скажу, что использование заглавных и строчных букв излишне, если вы используете string.sub.

print("Continue? (y/n)")
local re = io.read()

--[[Can you get string.sub from a local var? 
If so, this works. I'm unfamiliar with io(game 
lua uses GUI elements and keypresses in place of the CLI.]]

if re.sub == "y" then
    --do stuff
if re.sub == "n" then
    --do other stuff
end

Это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...