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();});
这样反而连输出都不输出了。
被这个问题快整自闭了都。。。
待解决
悬赏分:50
- 离问题结束还有 49天15小时44分13秒
点赞 0反对 0举报 0
收藏 0
分享 0
