[英]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()。 这样就结束了一切,将不再执行任何代码。
您必须存储第一行,然后读取另一行,然后才能结束该过程。
接下来检查代码。 我已经在函数之外声明了firstNum
和secondNum
。 然后,我检查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.