java - 将值读入从 Java 代码运行的 C 变量

标签 java c input

我已经成功地从 Java 代码执行了 C 代码,但我有一个问题,我想将值读入 C 程序从 Java 代码运行的 C 变量中。如何做到这一点?

我的 C 代码如下。

int main()
{ 
    int op;
    printf("\n Hello World... ");
    printf("\n Enter any value : ");
    scanf("%d",&op);
    printf("\n The value entered is : %d",op);
    getch();
    return 0;
}

我的java代码如下。

import java.io.*;
public class Test {
   public static void main(String args[]) {
      try {
            String s = " ";
            Process processCompile = Runtime.getRuntime().exec("e:/Sample.exe");

            BufferedReader stdInput = new BufferedReader(new
            InputStreamReader(processCompile .getInputStream()));
            // read the output from the command
            System.out.println("EXE OUTPUT");
            while ((s = stdInput.readLine()) != null) {
               System.out.println(s);
           }
        } catch(Exception ex) {
            ex.printStackTrace();
        }
    }
}

那么,我必须在 Java 代码中做哪些修改,以便我可以将值输入到 C 变量。提前致谢

最佳答案

您需要使用 JNI,而不是 ProcessBuilder。或者您需要将这些值写入文件并从 C 中读取文件。或者您需要将这些值写入流程输入流。让您感到困惑的是,它被称为“outputStream”。

类似于:

OutputStreamWriter osw = new OutputStreamWriter(process.getOutputStream(), "utf-8");
osw.append(String.format("value1=%d value2=%d", value1, value2));
osw.flush();

然后在 C 中从标准输入读取该字符串。

关于java - 将值读入从 Java 代码运行的 C 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16647937/

相关文章:

java - foreach 排序列表的速度

java - 整数除法 : Why is the result of 1/3 == 0?

c - 为什么我的代码崩溃了?

在 C 中使用 while 循环计算 e 常数

java - 如何检查用户是否在按键?

java - 哪个线程将在两个线程中获得并发修改异常

java - 有没有办法在在线 Office 365 中打开 Azure 存储帐户中的文件?

c - c中的通用数据结构搜索

javascript - 使用javascript发送带有表单的单个隐藏字段

Java使用扫描仪输入键按下