java和c++标准IO交互有关问题请问
java和c++标准IO交互问题请教
如果我有个c++的程序是如下这样的,在黑框框标准输入两个数然后直接输出结束,那么我如何在java程序中启动这个c++程序,然后把java的标准输入传递给原先c++的标准输入,然后把c++的标准输出传递给java的标准输出,最后正常结束。
int main()
{
int a;
cin>>a;
cout<<a;
int b;
cin>>b;
cout<<b;
return 0;
}
比如在终端启动java程序
输入:1
输出:1
输入:2
输出:2
结束
------解决思路----------------------
JNI 或 JNA
------解决思路----------------------
使用runtime启动
这是从我的一个程序中copy出来的片段,你修改修改应该就可以使用了。
如果我有个c++的程序是如下这样的,在黑框框标准输入两个数然后直接输出结束,那么我如何在java程序中启动这个c++程序,然后把java的标准输入传递给原先c++的标准输入,然后把c++的标准输出传递给java的标准输出,最后正常结束。
int main()
{
int a;
cin>>a;
cout<<a;
int b;
cin>>b;
cout<<b;
return 0;
}
比如在终端启动java程序
输入:1
输出:1
输入:2
输出:2
结束
------解决思路----------------------
JNI 或 JNA
------解决思路----------------------
使用runtime启动
BufferedReader br = null;
BufferedWriter bw = null;
String line = null;
try {
Process p = Runtime.getRuntime().exec("cmd /c test.exe");
br = new BufferedReader(new InputStreamReader(p.getInputStream(),
"utf-8"));
bw = new BufferedWriter(new OutputStreamWriter(p.getOutputStream(),
"utf-8"));
bw.write("1");
bw.flush();
line = br.readLine();
System.out.println(line);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
br.close();
} catch (Exception e) {
}
}
这是从我的一个程序中copy出来的片段,你修改修改应该就可以使用了。