Getting input from the user in Lua

后端 未结 2 1142
粉色の甜心
粉色の甜心 2020-12-28 21:29

How can I get an input from user in Lua (like scanf in C)?
For example, the program ask user his name, then he writes his name, then the program will output

相关标签:
2条回答
  • 2020-12-28 21:45

    The simplest input can be retrieved using io.read(). This will read a single line from the standard input (usually the keyboard, but can be redirected e.g. from file).

    You can use it like this:

    io.write('Hello, what is your name? ')
    local name = io.read()
    io.write('Nice to meet you, ', name, '!\n')
    

    io.read() is just a shortcut for io.input():read(), similarly io.write() is a shortcut to io.output():write(). See the API for read() here.

    Notice that io.write() will not auto-terminate your line like print() does.

    0 讨论(0)
  • 2020-12-28 21:55

    Use io.read() Beware that the function can be customised with different parameters. Here are some examples.

     s = io.read("*n") -- read a number
     s = io.read("*l") -- read a line (default when no parameter is given)
     s = io.read("*a") -- read the complete stdin
     s = io.read(7) -- read 7 characters from stdin
     x,y = io.read(7,12) -- read 7 and 12 characters from stdin and assign them to x and y
     a,b = io.read("*n","*n") -- read two numbers and assign them to a and b
    
    0 讨论(0)
提交回复
热议问题