JavaでCコードを実行して、ユーザーが入力した整数を出力したいとします。私はProcessBuilderクラスを使用しています。JavaでCコードへの入力を実行できない
Javaコードは、outputstream
で入力したすべての整数に対して同じ出力(stdout:0)を与えます。
public class test {
public static void main(String args[]) throws IOException {
String line;
ProcessBuilder builder = new ProcessBuilder("first1.exe");
Process process = builder.start();
OutputStream stdin = process.getOutputStream();
InputStream stdout = process.getInputStream();
InputStream err=process.getErrorStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(stdout));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(stdin));
writer.write(8);
writer.flush();
line = reader.readLine();
System.out.println("Stdout: " + line);
}
}
いつも出力得る:
stdout:0
first1.exeためのCコードである:上記のコードで
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
printf("%d",n);
return 0;
}