17

在我的 lua 程序中,我想在继续操作之前停止并要求用户确认。我不确定如何停止并等待用户输入,怎么做?

4

6 回答 6

30
local answer
repeat
   io.write("continue with this operation (y/n)? ")
   io.flush()
   answer=io.read()
until answer=="y" or answer=="n"
于 2009-11-29T10:30:33.140 回答
15

看看这个io库,默认情况下它有标准输入作为默认输入文件:

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

于 2009-11-29T10:19:27.963 回答
9

我使用过这样的代码。我将以一种可行的方式输入它:

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
于 2012-12-12T23:11:30.170 回答
1

我用:

     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
于 2013-02-13T22:40:50.063 回答
1

尝试使用以下代码

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

于 2013-04-19T14:59:49.890 回答
-1
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

从我做过的一些 lua 中(不是很多),我要说如果你使用 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

那应该行得通。

于 2013-12-20T17:54:38.017 回答