【发布时间】:2015-08-23 13:00:12
【问题描述】:
我尝试将计算器作为第一份作业。虽然我遇到了io.read 函数的问题。
这是我的代码
io.write("let's try making a calculator in LUA!\n\n")
io.write("First number?\n> ")
firstNum = io.read("*n")
io.write("Second number?\n> ")
secNum = io.read("*n")
io.write("Operator?\n>")
op = io.read()
--rest of code goes here--
它让我输入firstNum 和secNum,但一旦它到达op 之一,它就会退出而没有错误。这是输出
➜ lua test.lua
let's try making a calculator in LUA!!
First number?
> 10
Second number?
> 20
Operator?
>⏎
知道我在这里做错了什么吗?
【问题讨论】:
-
使用
firstNum = tonumber(io.read())读取带有数字的行 -
或
firstnum = io.read( "*n", "*l" )。一个普通的io.read( "*n" )在输入缓冲区(包括换行符)中留下尾随空格,因此io.read()会根据需要选择第二行的其余部分,而不是第三行。