C語言的代碼為:
#include <stdio.h>
int main(){
int i = 0;
scanf("%d", &i);
printf("%d\n", i);
scanf("%d", &i);
printf("%d\n", i);
return 0;
}
我用sub_process.stdin.write("1\n");后,它不會立即輸出;
當我用兩遍program_process.stdin.write("1\n");后,它會一股腦輸出兩個1;
但是我希望輸入一次program_process.stdin.write("1\n");它的
sub_process.stdout.on('data', (data) => {console.log(data);});
就會輸出一個1,就像程式邏輯那樣,但現實并不是,你只有連續輸入兩個1之后,它會連續輸出兩個1,這應該是緩沖區重繪傳送的問題,我不知道具體是怎么回事。
有人說這樣做:
sub_process.stdin.cork();
sub_process.stdin.write("1\n");
sub_process.stdin.uncork();
但是我試了一下并不行,或者異步做:
sub_process.stdin.cork();
sub_process.stdin.write("1\n", function(){sub_process.stdin.uncork();});
這樣反而連輸出都不輸出了。
被這個問題快整自閉了都。。。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/109751.html
標籤:JavaScript
上一篇:在UEeditor編輯器中 手動輸入一個鏈接 ,比如:http://123.com 。鍵盤空格后,會自動添加上A 標簽(自動識別為超鏈接)。如何去掉
