基于节点的读线也可以使用标准流的输入和输出
大学生开始学习C、C、Java时,写好hello word的代码,然后在命令框中输入输出;
基于对很多算法的学习,在我短暂的了解中,同学们都用C,C,甚至java来写;
许多算法主题中的输入描述和输出描述
比如牛科上的算法问题。com:
类似这种事情,杭州acm的算法标题也是一样的。
诀窍是使用nodejs内置的封装好的readline模块;[kbd][/kbd]
1.readline模块[逐行读取]
readline的主要功能是提供一种从可读流中读取数据的方式;
在这里,我们可以深入研究nodejs的可读流和可写流
2.如何使用readline?
一个基本的例子:
//引入readline模块const readline=require(' readline ');//创建readline接口实例const option={ input : process . stdin,output3360process.stdout,提示符: ' ' } const rl=readline . create interface(option);问题(‘你觉得js的这个模块怎么样?’,(答案)={//处理答案//注意:在日志中使用` `而不是`;Console.log(`你觉得:$ {答案} `);//关闭标准流rl . close();});详情请点击我的github的readline_dome.js
3.进一步扩展应用
3.1比如做一个简单的命令行界面;
//从官方示例实现的命令界面;const readline=require(' readline ');const rl=readline . create interface({ input : process . stdin,output: process.stdout,prompt : ' input ' });//rl.prompt()方法将写入readline配置的提示。输出流中新行的接口实例,用于为用户提供新的输入位置。rl .提示符();//‘line’事件是获取用户输入的值,直到按下[return/enter]为止;n,r或 r nrl.on ('line ',(line)={//ob.trim ()==从字符串中删除前导空格、尾随空格和行终止符。switch(line . trim()){ case ' hello ' : console . log(' world!');打破;Default:console.log(`您输入了:$ { line . trim()} ' `);打破;}rl .提示符();}).on('close ',)={console.log('再见!');//推出标准流;process . exit(0);});3.2类似牛科的例子。com编程;
这是一个单行阅读的演示
const readline=require(' readline ');Const fs=require('fs')//单行读取;const options={ input : process . stdin,output : process . stdout } const rl=readline . createInTerface(options);//单行读取;rl.on('line ',function(line){ line . trim();Console.log(`您输入的值(删除前导空格、尾随空格和行结束符)为:${line.trim()}`)})这是一个多行阅读的演示
const readline=require(' readline ');Const fs=require('fs')//多行读取;const options={ input : process . stdin,output : process . stdout } const rl=readline . createInTerface(options);//多行阅读//多行处理的思路如下:1。需要设置尚未开始读取的行数,如果第一个开始读取的行数是n行;//2.需要判断是否达到设定的行数,如果达到,则只需要在其中处理相关的算法逻辑;var n=-1;var sum=(a,b)=a b;var arr=[];Rl.on('line ',function(line){//表示第一行的n行已经被读取;If(n==-1){//类型转换并删除第一个空格和结束符;并将行数指定为n;n=ParSeint(line . trim());将console.log('n:' n)}else{//保存到数组中;arr . push(line . trim());If(n==arr.length){//这里是你想要的代码;//var结果=arr[1];var结果=sum(arr[0],arr[1]);console . log(' result : ' result)//恢复未读状态;arr . length=0;n=-1;}}})摘要
以上是边肖介绍的javascript在线算法编程,希望对大家有所帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!