有没有办法用JavaScript读取标准输入?

时间:2011-03-22 18:27:22

标签: javascript stdin

我在很多其他语言中看到过这种情况,但不是JavaScript。

我正在尝试这样的问题:这个(codechef.com),当然程序需要能够像C ++和其他语言那样读取标准。

编辑:谢谢你的回答。我想要这个功能的主要原因是我可以回答CodeChef上的问题; Codechef将多个输入发送到作为答案的文件/程序(当然程序必须以所需的方式响应才能使答案正确)。

5 个答案:

答案 0 :(得分:11)

如果您使用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

答案 1 :(得分:8)

这取决于您的JavaScript正在执行的环境。

在浏览器中,没有标准输入(浏览器不是控制台)。输入通常来自页面上某个表单中的某个文本框元素。

如果您正在使用类似Rhino的内容,那么您可以导入标准Java I / O类并以这种方式从stdin读取(查看第二个example 否在wiki上更长。)

答案 2 :(得分:2)

仅使用 readline()

var a = readLine();

您输入的值将存储在变量a中。

readline():从stdin读取单行输入,并将其返回给调用方。您可以使用它在JavaScript中创建交互式shell程序。

答案 3 :(得分:1)

它不在ECMAScript(标准化版本的JavaScript)标准库中。但是,JavaScript的某些实现确实包含它。例如,CommonJS(由几个浏览器外的JavaScript环境使用)具有system.stdin属性。 Rhino可以使用Java的标准输入类。

如果您只是尝试练习编程,可以使用textarea代替标准输入。

答案 4 :(得分:1)

在像interviewstreet这样的某些环境中,它们为您提供了一个函数,其中所有输入都以字符串的形式作为参数出现。

一次输入所有内容。

然后你必须解析该输入以从该字符串中获取各种标记。

在此之后你应该更好地编写代码。