【发布时间】:2013-10-14 19:05:22
【问题描述】:
我正在通过this site 学习 Lua。我在教程的最开始,正在尝试这个程序(输入一个数字,x,它返回x!):
-- defines a factorial function
function fact (n)
if n == 0 then
return 1
else
return n * fact(n-1)
end
end
print("enter a number:")
a = io.read("*number") -- read a number
print(fact(a))
但是,当我运行它时,io.read 似乎出现在提示之前。我在 Notepad++ 控制台中运行它,如下所示:
"C:\Program Files\Lua\5.1\lua.exe" "Path\To\factorial.lua"
输出(看起来)是空白的,但如果我输入一个数字,函数就会运行。
5
enter a number:
120
虽然这在这里不是什么大问题,但我只能想象在创建之前使用变量所带来的问题。那么,如何让这个程序在读取输入之前提示输入数字?
【问题讨论】:
-
在程序开始时尝试
io.stdout:setvbuf'no'。 -
@EgorSkriptunoff 现在似乎可以正常工作了。请随意回答。
-
你要求的太多了 :-)