我是Node.js的新手,但對C++和Javascript並不陌生。我將使用節點製作一個C++工具,但是我面臨一個問題,當C++程序調用std::cin
時,我不知道如何將數據從節點進程發送到C++進程。如何與來自Node.js流程的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
,b
和c
並最終完成main.exe?
UPDATE:
我的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應該能夠將/ pipe寫入你產生的進程。 –
@AndyM'pipe'是一個'writable'的方法,我不知道如何應用這個,我只是用'child.stdout.write'和'child.stdout.end'嘗試過,但沒有一個能工作。 – DMaster
你可以發佈一些你正在嘗試的JavaScript嗎?管道輸入就像是說'echo'1 2 3「| 。/ main.exe'在命令行上。 –