繁体   English   中英

nodejs中stdin的结束进程

[英]End process of stdin in nodejs

process.stdin.resume();
process.stdin.setEncoding('ascii');

var input_stdin = "";
var input_stdin_array = "";
var input_currentline = 0;

process.stdin.on('data', function (data) {
  input_stdin += data;
});

process.stdin.on('end', function () {
  input_stdin_array = input_stdin.split("\n");
  main();
});

// Reads complete line from STDIN
function readLine() {
  return input_stdin_array[input_currentline++];
}

function main() {
  var i = 4
  var d = 4.0
  var s = "HackerRank "

  var i2 = parseInt(input_stdin_array[0]);
  var d2 = parseFloat(input_stdin_array[1]);
  var s2 = input_stdin_array[2];

  var t1 = i + i2;
  var t2 = parseFloat(d + d2).toFixed(1);
  var s3 = s + s2;

  process.stdout.write(t1.toString() + "\n");
  process.stdout.write(t2.toString() + "\n");
  process.stdout.write(s3.toString());
}

如何结束 stdin 进程以显示 output? 如下代码? 如果您知道如何从 stdin 结束进程,您将得到 output。我的问题:如何从 stdin 结束进程?

在命令行上,按CTRL+D发送EOF这将触发process.stdinend事件

process.stdin.resume();
process.stdin.setEncoding("ascii");

var input_stdin = "";
var input_stdin_array = "";
var input_currentline = 0;

process.stdin.on("data", function (data) {
  input_stdin += data;
  if (input_stdin.includes("sum")) {
    input_stdin_array = input_stdin.split("\n");
    input_stdin_array.pop();
    main();
    process.exit();
  }
});



function readLine() {
  return input_stdin_array[input_currentline++];
}

function solveMeFirst(a, b) {
  return a + b;
}

function main() {
  var a = parseInt(readLine());
  var b = parseInt(readLine());

  var res = solveMeFirst(a, b);
  console.log(res);
}



试试这个它会对你有帮助,不要在最后使用在这里输入图像描述

暂无
暂无

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

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