【发布时间】:2016-03-09 12:29:45
【问题描述】:
我是 Node.js 的新手,但我对 C++ 和 Javascript 并不陌生。我打算用node做一个C++工具,但是遇到一个问题,当C++程序调用std::cin时,我不知道如何从node进程向C++进程发送数据。
查看这段代码(main.exe):
int main() {
int a, b, c;
cout << "Enter 3 numbers: ";
cin >> a >> b >> c;
cout << "Total: " << (a + b + c) << endl;
return 0;
}
在我的javascript代码中,我使用child_process.spawn调用main.exe,我知道我可以使用事件'data'来获取消息"Enter 3 numbers: ",但是如何让节点进入a,@987654327 @和c自动完成main.exe?
更新:
我的 Javascript 代码(我不知道可以使用哪个事件来写入数据,所以我使用 'data')
var spawn = require('child_process').spawn;
var child = spawn('main.exe');
child.stdout.on('data', (data) => {
console.log(data);
child.stdout.end('12 34 56');
});
child.on('close', (code) => console.log('Exit code: ' + code));
【问题讨论】:
-
你试过什么? Nodejs 应该能够向您生成的进程写入/管道。
-
@AndyM
pipe是writable的一种方法,我不知道如何应用它,我只是尝试使用child.stdout.write和child.stdout.end但它们都不起作用。 -
您也可以发布一些您正在尝试的javascript吗?管道输入就像在命令行上说
echo "1 2 3" | ./main.exe。 -
@AndyM 我贴出来了,实际项目中不会用到,这个代码是用来快速测试的。
标签: javascript c++ node.js io cin