编程题中js输入输出

牛客网上的v8版本的无限输入如下:
var arr = [];
while(str = readline()){
    str = str.split(' ');
    arr.push(str);
}
//全部读完就运行下面的
console.log(arr.length);
node的无限输入如下:
process.stdin.resume();
process.stdin.setEncoding('utf-8');
var input = '';
//这个会把所有的输入作为一整个
process.stdin.on('data', function(data) {
    input = data;
})
process.stdin.on('end', function() {
	//数组[ [输入1], [输入2], [输入3] ]
    var input_array = input.trim().split('\n');
   	doSomething(input_array);
});

function doSomething(doubleArr){
	//处理
}
node有输入行数限制的
const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

var arr = [];
rl.on('line',(input) => {
	arr.push(input);
	//第一行输入是输入行数
	if(arr.length == arr[0] + 1){
		handleInput(arr);
		rl.close()
	}
});

function handleInput(){
	//这里对所有输入的数据做处理
	for(var i=1; i<arr.length;i++){
		var data = arr[i].split(' ').map( x => parseInt(x))
		console.log(data)
		// ... 
	}
	
}

本地测试发现可以利用ctrl+C 如下:
const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

/**
 * line事件 :无限次输入,cltr+c输出结果并退出repl
 */
var arr = [];
rl.on('line',(input) => {
	arr.push(input);
});
//每当 input 流接收到 <ctrl>-C 输入(通常称为 SIGINT)时,就会触发 'SIGINT' 事件。
rl.on('SIGINT', () => {
  doSomething(); //这里放处理的函数
  rl.close();
});

function doSomething(){
	//这里对所有输入的数据做处理
	console.log(arr);
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值