使用javascript读取多个输入行

时间:2016-08-03 15:13:29

标签: javascript node.js readline

我正在尝试使用Node的读取库库来做一些算法问题:readline。 (实际上,这是由课程提出的。)

输入代码为:

var readline = require('readline');
var lineNumber = 0;

process.stdin.setEncoding('utf8');
var rl = readline.createInterface({
  input: process.stdin,
  terminal: false
});

rl.on('line', readLine);

function readLine (line) {
    // Do some work here.
}

问题是计算n个数的总和。作为输入,我们有:  1.在第一行中,我们要计算总和的数字的数量。  2.第二行将包含以空格分隔的“n”数字。

输入的示例如下: 五 1 4 8 7 9 这种情况下的输出: 25

我如何使用这个库(我可以用Java,C ++等做到这一点。但我不知道如何使用javascript读取多个输入行)

1 个答案:

答案 0 :(得分:3)

var readline = require('readline');
var lineNumber = 0;
var NumOfNum;

process.stdin.setEncoding('utf8');
var rl = readline.createInterface({
  input: process.stdin,
  terminal: false
});

rl.on('line', readLine);
console.log("Provide number of Numbers to sum:");
function readLine (line) {
    if (lineNumber == 0) {
        if (!isNaN(parseInt(line))) {
            NumOfNum = parseInt(line);
            lineNumber++;
            console.log("Provide " + NumOfNum + " numbers sepearted by space to add: ");
        } else {
            console.log("Invalid Input");
        }
    } else {
        var sum = line.split(" ");
        if (sum.length != NumOfNum) {
            console.log("Given more/less than " + NumOfNum + " Try again");
        } else {
            sum = sum.reduce(function(a, b) {
              return (a*1) + (b*1);
            });
            console.log("Total: " + sum);
            process.exit();
        }
    }
}