gpt4 book ai didi

java - 在java中运行c定时器执行文件

转载 作者:太空宇宙 更新时间:2023-11-04 08:56:53 25 4
gpt4 key购买 nike

这个 c 程序在 1 秒的间隔内打印 1 到 10 个数字。这个相同的执行 c 程序文件(filename.out 或 filename.exe 或 ./filename)在 java 运行时运行,但它在 10 秒后打印 1 到 10 个数字间隔。我需要在 Java 运行时执行中使用相同的输出格式,即它应该在 1 秒的间隔内打印 1 到 10。

提前致谢......

#include<stdio.h>

#include<time.h>

#include<sys/timeb.h>

int main()

{
int i;
for(i=1; i<=10; i++)
{
printf("%d\n", i);
sleep(1);
}
} //main

Java 代码......................

  import java.io.*;

import java.lang.Runtime;

import java.lang.*;

import java.io.File;

public class run
{
public static void main(String[] args)
{
try
{
String[] cmd = {"filelpath"};
Process p = java.lang.Runtime.getRuntime().exec(cmd);
InputStream Out = p.getInputStream();
InputStreamReader r = new InputStreamReader(Out);
BufferedReader in = new BufferedReader(r);
String line;
while ((line = in.readLine()) != null)
{System.out.println(line);}
in.close();
System.out.println("Done.");
}
catch (IOException ex)
{
ex.printStackTrace();
}

} //void

} //main

最佳答案

尝试使用 fflush() 显式清除 stdout .

int main()

{
int i;
for(i=1; i<=10; i++)
{
printf("%d\n", i);
sleep(1);
fflush(stdout);
}
} //main

printf() 默认是行缓冲的。所以 printf() 中的换行符应该立即刷新输出。但是这里的 stdout 没有附加到终端,而是附加到 java 进程。

关于java - 在java中运行c定时器执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16501024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com