【发布时间】:2017-12-25 10:17:43
【问题描述】:
我正在尝试从标准输入读取行
我想对新行的正整数求平方,从输入的每一行,我想打印输出。
下面是我的代码:
process.stdin.resume();
process.stdin.setEncoding('utf8');
var stdin = '';
var chunk = '5\n25';
process.stdin.on('data', function (chunk) {
stdin += chunk;
}).on('end', function() {
var lines = stdin.split('\n');
for(var i=0; i<lines.length; i++) {
process.stdout.write(lines[i]*lines[i]);
}
});
这是返回错误:
throw new TypeError(
^
TypeError: Invalid data, chunk must be a string or buffer, not number
我真的不明白我在哪里写错了代码!感谢您的帮助。
编辑 1
当我尝试通过在末尾附加 '\n' 来打印输出时,如下例所示:process.stdout.write(lines[i]*lines[i] + "\n"); 它正在打印输出并在下一行打印 0,例如,如果我发送 5 作为输入,它正在打印:
25 0
==> 0 打印在下一行!这是我使用的 utf-8 的问题吗?
【问题讨论】:
-
我猜
process.stdout.write("" + lines[i]*lines[i]); -
即使它抛出了同样的问题 :( @JonasW.
-
当我尝试在这样的输出之后添加新行 ==>
process.stdout.write(lines[i]*lines[i] + "\n");它正在打印输出,并且在下一行打印 0,例如,如果我发送 5 作为输入,它正在打印:25 0
标签: javascript node.js stdin