2012-08-22 34 views
5

Wie kann ich eine Eingabe vom Benutzer in Lua erhalten (wie scanf in C)?
Zum Beispiel fragt das Programm Benutzer seinen Namen, dann schreibt er seinen Namen, dann gibt das Programm seinen Namen aus.Eingabe vom Benutzer in Lua

Antwort

15

Verwenden Sie io.read() Beachten Sie, dass die Funktion mit verschiedenen Parametern angepasst werden kann. Hier sind einige Beispiele.

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

Die einfachste Eingabe kann mit io.read() abgerufen werden. Dies liest eine einzelne Zeile von der Standardeingabe (normalerweise die Tastatur, kann aber beispielsweise aus der Datei umgeleitet werden).

Sie können es wie folgt verwenden:

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

io.read() für io.input():read() nur eine Verknüpfung ist, ähnlich io.write() eine Verknüpfung zu io.output():write() ist. See the API for read() here.

Beachten Sie, dass io.write() wird nicht automatisch beendet deine Linie wie print() tut.

+3

Ich würde vorschlagen, mit 'io.stdin: read' statt anzunehmen, dass die Standard-Eingabedatei' stdin' ist. Ähnlich mit 'io.stdout: write'. –

Verwandte Themen