加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

输入 – io.read被跳过Lua

发布时间:2020-12-14 21:44:28 所属栏目:大数据 来源:网络整理
导读:我试着把计算器作为一个很好的第一个任务.虽然我遇到了io.read功能的问题. 这是我的代码 io.write("let's try making a calculator in LUA!nn")io.write("First number?n ")firstNum = io.read("*n")io.write("Second number?n ")secNum = io.read("*n")
我试着把计算器作为一个很好的第一个任务.虽然我遇到了io.read功能的问题.

这是我的代码

io.write("let's try making a calculator in LUA!nn")

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?
>?

知道我在这里做错了吗?

解决方法

原因是,在按ENTER键之前会读取一个数字.换行符仍在输入缓冲区中,然后由以下io.read()读取.

一种选择是读取操作直到它有效.例如,要跳过空格字符:

repeat op = io.read() until op:match "%S"

或者,只读一个标点字符:

repeat op = io.read() until op:match "%p"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读