Получение ввода от пользователя в Lua

Как я могу получить ввод от пользователя в Lua (как scanf в C)?
Например, программа спросит у пользователя его имя, затем он напишет его имя, затем программа выведет его имя.

2 ответов


использовать ввода-вывода.read () остерегайтесь, что функция может быть настроена с различными параметрами. Вот несколько примеров.

 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

самый простой вход можно получить с помощью io.read(). Это будет читать одну строку из стандартного ввода (обычно клавиатура, но может быть перенаправлена, например, из файла).

вы можете использовать его как это:

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

io.read() - это просто ярлык для io.input():read() аналогично io.write() ярлык io.output():write(). см. API для read() здесь.

обратите внимание, что io.write() не будет автоматически завершить строку типа print() делает.