win 10 node运行js文件遇到的问题

Win10 node运行js文件遇到的问题

写该文章的原因

在挑战 pintia.cn 上的题目,用javascript语言进行挑战,提交编译的方式是用node.js进行编译校验。提交答案后,无法确定输出。因此需要自己运行程序确认基本通过之后才提交答案,因此我们需要安装node.js ,而今天分享再此过程中遇到的坑。

我一开始使用的是node.js 10.11.0 的版本,后来运行js文件之后无法进行数据输入,换了node.js 8 的版本之后,运行程序就可以输入了。

但是很快发现 无法结束输入 !!!

刷pintia 上面的题目,你的程序是需要你键入值的,所以在调试的过程中你需要打开cmd 窗口用node 运行js文件,运行之后不能想mac系统那样通过Command + D 结束输入(win10使用ctrl+D都是无反应的,只会打印 “^D” , 使用ctrl+C会退出整个程序)
在这里插入图片描述
如上图,在输入数据之后,我通过ctrl + D,ctrl + Z,ctrl + C都无法退出输入,直到ctrl + C的时候整个程序都退出了。

需要工具材料

官网下载 node.js 8.12版本
(pintia.cn使用的版本是node  8.11.4)

正文

var fs = require('fs');
var buf = '';

process.stdin.on('readable', function() {
  var chunk = process.stdin.read();
  if (chunk) buf += chunk.toString();
});

process.stdin.on('end', function() {
 //你编写代码的地方
});

上面是pintia 提供的程序示例,获取输入的方式逐行读取,因此我们可以使用“重定向”的方式,从文件对象中获取数据,不需要我们输入,把测试的值存放在文件中
1.创建一个运行文件 004.js

var fs = require('fs');
var buf = '';

process.stdin.on('readable', function() {
var chunk = process.stdin.read();
if (chunk) buf += chunk.toString();
});

process.stdin.on('end', function() {
  	//代码部分
     var arr = buf.split('\n')
     num =parseInt(arr[0])
     var C = 5*(num-32)/9
     console.log('Celsius = '+parseInt(C));
});

在创建一个txt文件:input.txt

150

cmd 运行下面这行代码即可:

node  运行代码.js  < 输入数据.txt

在这里插入图片描述
这样就可以在win10 上面调试自己的程序,尽情的在pintia上面刷题吧。

猜你喜欢

转载自blog.csdn.net/weixin_40584888/article/details/82919929