js笔试时的输入输出(node版)

node单行,多行,行数未知的输入输出流模板

单行输入

//---------------本地测试时使用
const fs = require('fs');
let fd = fs.createReadStream('./test3_data.txt');   //创建文件读取流
//--------------

const readline = require('readline');	//引入readline按行读取模块
const rl = readline.createInterface({	//创建输入输出接口
    input: process.stdin,		//本地测试时可写 input: fd,  将数据流作为输入
    output: process.stdout		//本地测试时可省略
});
 
//单行输入
rl.on('line',function(line){		//监听事件line,将数据line作为参数传入
	//------------ 这里写代码
    let data = line.split(' '); 	//获取第一行的内容,存为数组。注意获取到的是字符串形式
    console.log(data);
    //------------
});

多行输入,行数已知

//---------------本地测试时使用
const fs = require('fs');
let fd = fs.createReadStream('./test3_data.txt');   //创建文件读取流
//--------------

const readline = require('readline');
const rl = readline.createInterface({       //创建输入输出接口
    input: process.stdin,		//本地测试时可写 input: fd,  将数据流作为输入
    output: process.stdout		//本地测试时可省略
});

let K = 6; // k为已知的输入行数
let inputs = [];       //初始化
rl.on('line', function(data) {      //监听事件line,一行一行地作为data参数传入
    // 获取输入
    inputs.push(data);      //数据存入数组
    if (K === inputs.length) {      //因为是回调函数,所以判断最后一次的data输入,才能查看结果
        // 处理
        result = deal(inputs);
        // 输出结果
        console.log(result);
        
        // inputs.length = 0;	// 清空数组,可写可不写
    }
});
function deal(inputs) {

//------------这里输入自己的代码


//------------
    return result;
}

多行输入,行数未知(如与第一行有关)

代码需要视情况微调

//---------------本地测试时使用
const fs = require('fs');
let fd = fs.createReadStream('./test3_data.txt');   //创建文件读取流
//--------------

const readline = require('readline');
const rl = readline.createInterface({       //创建输入输出接口
    input: process.stdin,		//本地测试时可写 input: fd,  将数据流作为输入
    output: process.stdout		//本地测试时可省略
});

let k = -1; //先给行数置-1,表示还没开始读取

let inputs = [];       //初始化
rl.on('line', function(data) {      //监听事件line,一行一行地作为data参数传入

    // 获取输入
    inputs.push(data);      //数据存入数组,如果第一行是行数需要把这行放到else里

    if(k === -1) {
        k = parseInt(data.trim());        //读取第一行,以此得到接下来输入的行数
    } else {
        if(k*2 === inputs.length) {   //因为是回调函数,所以判断最后一次的data输入,才能查看结果
            // 处理
            result = deal(inputs);
            // 输出结果
            console.log(result);

            // inputs.length = 0; k=-1;    // 清空数组,可写
        }
    }
});
function deal(inputs) {

//------------这里输入自己的代码


//------------
    return result;
}

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值