繁体   English   中英

如何在节点中一个接一个地读取两个输入?

[英]How do I read two inputs one after another in node?

我只能找出一个输入

var readline = require('readline');

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

rl.on('line', readLine);

function readLine (line) {
  if (line !== "\n") {
    var firstNum = parseInt(line.toString().split(' ')[0], 10);
    process.exit();
  }
}

我试过了:
-再次呼叫rl
-创建另一个类似于rl的变量
-最后一小时只是老套

我正在尝试能够阅读两个。 例如,如果我要在两个输入之间添加相应的数字

输入:

1 2 3 4 5
6 3 4 7 11

输出为:

7 5 7 11 16

第一次读取后,您要调用process.exit()。 这样就结束了一切,将不再执行任何代码。

您必须存储第一行,然后读取另一行,然后才能结束该过程。

接下来检查代码。 我已经在函数之外声明了firstNumsecondNum 然后,我检查firstNum是否已分配(如果不是,则为第一次读取,否则为第二次读取)。 复读后,我执行console.log来检查存储了什么,最后退出了该过程。

var readline = require('readline');

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

rl.on('line', readLine);

var firstNum, secondNum;

function readLine (line) {
  if (line !== "\n") {
    if (!firstNum) {
        firstNum = line;
    } else {
        secondNum = line;
        console.log(sum(firstNum, secondNum));
        process.exit();
    }
  }
}

function sum(str1, str2) {
    var n1 = str1.split(' ').map(function(n){ return parseInt(n); });
    var n2 = str2.split(' ').map(function(n, i){ return parseInt(n) + n1[i]; });
    return n2.join(' ');
}

您可以使用逻辑替换console.log调用,以拆分字符串并在显示数字之前对数字求和。

编辑只是添加了一个sum(s1, s2)函数,它可以执行您想要的操作。 核实!

读完一行后退出。 如果程序不再运行,则无法阅读第二行。

var readline = require('readline');

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

var lines = [];
rl.on('line', readLine);

function addLines(l1, l2) {
  return l1.map(function(e, i) {
    return e + l2[i];
  });
}

function readLine(line) {
  var numbers = line.toString().split(' ').map(function(x) {
    return parseInt(x);
  });
  lines.push(numbers);
  if (lines.length == 2) {
    var sumLine = addLines(lines[0], lines[1]);
    console.log(sumLine);
    process.exit();
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM