这个程序使我感到困惑。该程序的目标是计算文件中的换行符数量,并将其输出到命令提示符下。然后,Learnyounode对文件运行自己的检查,并查看其答案是否与您的答案匹配。
所以我从答案开始:
var fs = require('fs');
var filename = process.argv[2];
file = fs.readFileSync(filename);
contents = file.toString();
console.log(contents.split('\n').length - 1);
learningyounode验证此程序正确计算了新行数。但是,当我将程序更改为以下任何一项时,它不会打印出与learningyounode打印出的数字相同的数字。
file = fs.readFileSync(C:/Nick/test.txt);
file = fs.readFileSync(test.txt);
nodejs readFileSync是否应该能够输入地址并正确读取它?
最后,该程序应该打印出程序中的换行符数。为什么每次我运行该程序时正确的程序和Learnyounode都打印出与换行数不同的相同数字?
例如,test.txt中的换行数为3。但是每次运行此程序时,都会打印出不同的数字,例如45、15、2等。但是同时,learnyounode将其验证为正确的程序,因为他们的答案都匹配!到底是怎么回事?
编辑:test.txt看起来像这样
ok
testing
123
因此,我在本地计算机上尝试了您的程序,并且您的程序运行正常。我不是learningyounode的专家。在您提出问题后,我只是尝试了一下,但我认为我了解它的工作原理。因此,这是您问题的答案:
nodejs readFileSync是否应该能够输入地址并正确读取它?
来自nodejs的此方法运行良好。您可以尝试打印文件的内容,然后会发现没有问题。
为什么每次我运行此程序时,正确的程序和learningyounode都打印出与换行数不同的相同数字。
learningyounode每次都以不同的filename
输入运行您的程序。它通过对同一文件运行自己的正确代码副本来验证程序的输出。
但是,当我将程序更改为以下任何一项时,它不会打印出与learningyounode打印出的数字相同的数字。
这是因为在这一点上,您的代码正在处理固定文件,而Learnyounode在每次迭代中仍在处理不同的文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句