2012-08-22 1 views
5

Come posso ottenere un input dall'utente in Lua (come scanf in C)?
Ad esempio, il programma chiede all'utente il suo nome, quindi scrive il suo nome, quindi il programma produrrà il suo nome.Come ricevere dall'utente in Lua

risposta

15

Usa io.read() Attenzione che la funzione può essere personalizzata con diversi parametri. Ecco alcuni esempi.

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 
4

L'input più semplice può essere recuperato utilizzando io.read(). Questo leggerà una singola riga dallo standard input (di solito la tastiera, ma può essere reindirizzato ad esempio dal file).

Si può usare in questo modo:

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

io.read() è solo una scorciatoia per io.input():read(), analogamente io.write() è una scorciatoia per io.output():write(). See the API for read() here.

Si noti che io.write() non terminerà automaticamente la linea come print().

+3

Suggerisco di usare 'io.stdin: read' invece di assumere che il file di input predefinito sia' stdin'. Allo stesso modo con 'io.stdout: write'. –