下面的代码没有输出知道它只在相关的c ++代码(code.cpp)中没有输入流时才提供输出:
String command = "g++ -o code.bin code.cpp";
Process p = Runtime.getRuntime().exec(command);
p.waitFor();
System.out.println("exit: " + p.exitValue());
p.destroy();
Process p1 = Runtime.getRuntime().exec("./code.bin < input.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(p1.getInputStream()));
String line = "";
while((line = br.readLine())!=null){
System.out.println(line);
}
p1.waitFor();
System.out.println("exit: "+p1.exitValue());
p1.destroy();
例如,此代码将提供输出:
#include<iostream>
using namespace std;
int main(){
cout<<"hello world\n";
return 0;
}
虽然这段代码没有:
#include<iostream>
using namespace std;
int main(){
int x;
cin>>x;
cout<<x<<endl;
return 0;
}
我在我的终端执行了命令并且它提供了想要的输出,所以任何人都知道这背后的原因?
答案 0 :(得分:0)
最新答案。在我的类似情况下,用fflush(stdout)
刷新输出缓冲区证明是可行的。