web-dev-qa-db-ja.com

JavaScriptで標準入力を読み取る方法はありますか?

これは他の多くの言語で見られましたが、JavaScriptでは見られませんでした。

私は次のような問題を実行しようとしています:これ(codechef.com)ともちろん、プログラムはC++や他の言語のように標準を読み取ることができる必要があります。

編集:答えてくれてありがとう。この機能が必要な主な理由は、CodeChefに関する質問に答えられるようにするためです。 Codechefは、回答であるファイル/プログラムに複数の入力を送信します(もちろん、プログラムは、回答が正しいために必要な方法で応答する必要があります)。

22
JohnAllen

JavaScriptが実行されている環境によって異なります。

ブラウザーには標準入力はありません(ブラウザーはコンソールではありません)。入力は通常、ページ上のフォームのテキストボックス要素から送られます。

Rhino のようなものを使用している場合は、標準のJava I/Oクラスをインポートし、その方法でstdinから読み取ることができます(2番目を参照 もはやwikiにはありません)。

8
Cameron

Nodeを使用してターミナルでインタープリターとして機能する場合、これを使用できます。

---- name.js ----
var readline = require('readline');

var rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout

});

rl.question(">>What's your name?  ", function(answer) {
   console.log("Hello " + answer);
   rl.close();
});

----- terminal ----
node name.js
12
Kenn Costales

インタビューストリートのような一部の環境では、すべての入力が文字列の形式の引数として送られる関数を提供します。

一度にすべての入力。

次に、その入力を解析して、その文字列からさまざまなトークンを取得する必要があります。

この後、さらにコードを書くことをお勧めします。

1
TwiToiT

ECMAScript(JavaScriptの標準バージョン)標準ライブラリにはありません。ただし、JavaScriptの一部の実装には含まれています。たとえば、いくつかのブラウザー外のJavaScript環境で使用されるCommonJSには、 system.stdin プロパティがあります。 Rhino Javaの標準入力クラスを使用できます。

プログラミングを練習するだけの場合は、標準入力の代わりに textarea を使用できます。

1

readline()だけを使用します

var a = readline();

入力した値は変数aに格納されます。

readline():stdinから1行の入力を読み取り、呼び出し元に返します。これを使用して、JavaScriptでインタラクティブなシェルプログラムを作成できます。