当我从java代码中执行C++时,不显示任何输出。

问题描述 投票:1回答:1

下面的代码是没有输出的,要知道只有在关联的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;
    }

我在终端机上执行了这些命令,它给出了想要的输出,所以有人知道这背后的原因吗?

java c++ terminal command
1个回答
0
投票

迟来的答案。在我类似的情况下,用下面的命令来冲洗输出缓冲区 fflush(stdout) 事实证明是可行的。

© www.soinside.com 2019 - 2024. All rights reserved.