とある地味なブログ

プログラミングとお絵かきに関する雑記。

javascriptの標準入力をJavaのScannerっぽく取得する

Node.jsでやる人がいるのか知らないけど、競技プログラミングとか、CodeIQとか、paizaみたいので標準入力を得るスクリプトを書きました。

スクリプト

Readerが本体で、Reader(maxLines)maxLinesは、入力があり得る最大の行数を指定します。

Reader#read(callback)で一行読みます。Promiseを返すので、then()でつなぎつつ、逐次的に変数を初期化します。

入力例

$ node reader.js
3 2
foo
a
b
c
input:
{ m: 3, n: 2, o: 'foo', xs: [ 'a', 'b', 'c' ] }

但し

コピペで複数行入力すれば問題ないけど、入力の途中でEnterするとそこで終了する問題があります。