使用nodejs从控制台读入内容
在写算法题的时候,基本上都需要输入输出语句,在大多数练题网站上当想用js
书写算法题时,发现不知道怎么输入,其实Node
是提供了一个readline模块来实现此功能的
tip
笔者用过的练题网站只有leetcode在使用js书写时只需要实现功能函数就行,就不需要考虑如何从键盘录入内容
简单使用
const readline = require('readline')
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
})
// 监听键入回车事件
rl.on('line', (str) => {
// str即为输入的内容
if (str === 'close') {
// 关闭逐行读取流 会触发关闭事件
rl.close()
}
console.log(str);
})
// 监听关闭事件
rl.on('close', () => {
console.log('触发了关闭事件');
})
假设上面的文件叫read.js
,接下来我们直接输入下面运行
node read.js
上面的逻辑是输入字符串 close
时退出程序
感觉并没有其它语言用起来那么安逸,比如:
- C++:
cin>>param
- C:
scanf("%s",¶m)
- C#:
param = Console.ReadLine()
- ...等等
怎样才能变得向上面那样用起来输入一点呢?我们为上面代码包装一下
封装
const readline = require('readline')
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
})
/**
* 读入一行
*/
function readLine() {
return new Promise(resolve => {
rl.on('line', (str) => {
resolve(str)
})
})
}
/**
* 退出逐行读取
*/
function close() {
rl.close()
}
module.exports = {
readLine,
close
}
我们在编写一个新的test.js
,上面的叫read.js
放在同一目录下
const { readLine, close } = require('./read')
/**
* 运行的main函数
**/
async function main() {
let i = await readLine();
while (+i !== 0) {
console.log(`你输入的是${i}`);
i = await readLine();
}
close();
}
// 调用执行
main();
现在用起来就方便多了,只需要在函数结束时加上close不然不会退出
"你的指尖,拥有改变世界的力量! "
欢迎关注我的个人博客:https://sugarat.top
分类:
javascript
, Node
标签:
javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧