当前位置: 首页 > 知识库问答 >
问题:

javascript - 牛客上使用js(Node)写编程题时,如何在本地运行进入end事件?

孟花蜂
2023-10-08
process.stdin.resume();process.stdin.setEncoding('ascii');var input = "";var input_array = "";process.stdin.on('data', function (data) {    input += data;});process.stdin.on('end', function () {    input_array = input.split("\n");    console.log(input_array)});

这是牛客的刷题代码,用于处理输入输出,如果代码放到本地运行,按下确认键就一直让我输入。没法跳进end。
请问除了判断输入是否为空,有什么办法本地vscode跳出输入,进入end呢?类似ctrl+c快捷键的那种(ctrl+d不行)

共有2个答案

袁卓
2023-10-08

图片.png

回车结束一行之后再 Ctrl + D,肯定可以的,要不就是键冲突了

卫阳炎
2023-10-08

在本地运行 Node.js 代码时,如果你想要在输入完成后立即触发 'end' 事件,你可以使用 'process.stdin.pause()' 函数来暂停 Node.js 的标准输入流。这将允许你输入完数据后立即到达 'end' 事件。

在你的代码中,你可以在接收到 'data' 事件的回调函数后立即调用 'process.stdin.pause()',如下所示:

process.stdin.resume();process.stdin.setEncoding('ascii');var input = "";var input_array = "";process.stdin.on('data', function (data) {    input += data;    process.stdin.pause();  // 在这里暂停输入流});process.stdin.on('end', function () {    input_array = input.split("\n");    console.log(input_array)});

在这种修改后的代码中,当接收到任何数据时,Node.js 的标准输入流都会立即被暂停。因此,在你完成输入后,Node.js 将立即进入 'end' 事件,而不需要你手动按下任何键来确认输入已经完成。请注意,如果你希望用户能够输入多个行,那么可能需要在 'end' 事件中再次调用 'process.stdin.resume()' 以允许用户输入更多的行。

 类似资料:
  • 主要内容:编写Java源程序,编译和运行,编译常见错误解决方法经过上节的操作已经配置完了 Java 的开发环境,但并不清楚所配置的开发环境是否真的可以运行 Java 应用程序。为了解除这个疑虑,也为了使读者对开发 Java 应用程序的步骤有一个初步的了解,本节将展示一个完整 Java 应用程序的开发过程。 编写Java源程序 Java 源程序可以使用任何一个文本编辑器来编写,这里以 Windows 下的记事本为例。 (1) 新建一个空白记事本,然后如实地输入

  • 我有一个使用JSONObject的函数,我需要测试它。下面是我的代码: 这是我想测试的代码: 谢谢

  • 问题内容: 我已经从这里安装的node.js http://nodejs.org/ 。在我的Windows8机器上。将示例服务器代码复制到我的server.js文件中 然后打开node.js提示符并编写节点c:/node/server.js,但是什么也没有发生。我是一个PHP开发人员,只是想尝试一下,任何指导原则都将非常有帮助。 问题答案: 您无需进入node.js提示符,只需使用标准命令prom

  • 我将bash脚本存储为db中的字符串,我需要根据用户需求调用它。脚本应该从PHP级别在远程机器上执行。我找到了以下主题: 关于ssh连接和调用远程脚本的两个主题: 如何使用SSH在远程计算机上运行shell脚本 https://serverfault.com/questions/241588/how-to-automate-ssh-login-with-password 以及在php中使用它的两种

  • 我想做的是上传一个网络摄像头或音频流到Nodejs并保存到磁盘。目标是一旦数据可用,就将数据块发送到服务器。我已经从gerUserMedia,安装媒体记录器中抓取了流,当数据可用时,我将Blob转换为arrayBuffer并将其发送到服务器。我知道代码是错误的,因为我不确定正确的方法是什么,但是当数据被发送到服务器时,一个文件被保存,但只有1kb的文件,在那里它应该是一个大的视频文件。我该怎么做呢

  • 我习惯于做出反应并执行以使我的应用程序在本地运行。但是,当我在新项目上运行该脚本时,它会提示没有开始脚本。经进一步检查,没有。 如果这是我的的样子,我如何让它在本地运行? 这是一个Laravel环境,后端使用PHP,前端使用Vue。我觉得自己真的很愚蠢,因为我不知道这一点,但当我搜索时,我也没有找到任何东西。 我正在使用PhpStorm,我下载了XAMPP、Composer和PHP。我不确定我错过