16

scanfLua ( Cなど) でユーザーから入力を取得するにはどうすればよいですか?
たとえば、プログラムがユーザーに自分の名前を尋ね、ユーザーが自分の名前を書くと、プログラムは自分の名前を出力します。

4

2 に答える 2

38

io.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
于 2012-08-22T09:40:32.860 に答える
11

最も単純な入力は、 を使用して取得できますio.read()。これは、標準入力 (通常はキーボードですが、ファイルなどからリダイレクトできます) から 1 行を読み取ります。

次のように使用できます。

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()

于 2012-08-22T09:19:50.943 に答える