win 10 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 提供的程序示例,获取输入的方式逐行读取,因此我们可以使用“重定向”的方式,从文件对象中获取数据,不需要我们输入,把测试的值存放在文件中
node 运行代码.js < 输入数据.txt
这样就可以在win10 上面调试自己的程序,尽情的在pintia上面刷题吧。