如何传递参数给一个C程序,它需要从一个文本文件中的一些inputstreams (如scanf()的),这是已经保存,我运行的输入。使用Runtime.getRuntime().exe() in java。传递参数给AC代码与Java
回答
Runtime.exe
允许您指定要执行的程序以及程序的参数。看看Java API documentation for exec
。
String[] command = new String[2];
command[0] = "c:\\bin\\someProgram.exe";
command[1] = "c:\\data\\arguments.txt";
Runtime.getRuntime().exec(command);
如果C程序中的数据已经被存储在一个文件中,应该将文件直接传递作为参数(这取决于,当然,在该方案的确切性质和所需要的任何前处理 - 你需要给我们一个更好的答案的细节)。
这个答案对实质...有点轻...另外,它似乎OP已经尽可能地运行程序。 – millimoose 2013-05-08 11:30:00
这种问题并不多,但我想OP可能会对如何传递参数感到困惑 - exec的文档并不十分清楚。 – 2013-05-08 11:32:32
的确如此,但在这种情况下,我倾向于要求澄清并掩盖这个问题,如果没有人愿意将代码片段扔到墙上来查看哪一个会粘住。 – millimoose 2013-05-08 11:36:46
它看起来像你想从文件传递数据到你的程序,而不是交互式地进行。您可以为此使用I/O重定向。在unix哲学everything is a file
,这有助于你的输入流stdin
也是一个文件。
让我用一个例子来说明这一点。我会后一
int main(){
int a, b;
std::cin >> a >> b;
std::cout << a+b << std::endl;
return 0;
}
你喜欢的东西g++ sum.cpp
编译这个并运行此类似
./a.out
3 4
这将打印7
如你所期望。但是你必须手动输入这些数据,如果这些数据保持不变,那么一遍又一遍地输入这些数据是没有意义的。这里是I/O重定向。我们想要做的是告诉程序,而不是从stdin
中读取,它应该从另一个文件中读取。
为了测试这个,创建一个简单的文本文件input.text
并将3 4
作为其内容。现在运行这个程序./a.out < input.txt
,如果你改变文件中的数字并再次运行程序,这将再次打印7
,你会得到相应的结果。
所以你试图做的事情与Java或C或者scanf或者其他输入方式无关。作为一个附注,而不是使用Runtime
,你应该考虑使用commons exec
。 为了更好地理解重定向,请阅读this和this。
注意:既然你提到你想运行exe
文件,我假设你运行的是windows。您可能需要将a.out
更改为a.exe
或您的ide编译成的任何名称。如果我没有清楚地解释某件事情,希望它能帮助我随时告诉我。
感谢nikhil的答案,但这并不完全是我想 仍然我得到了答案使用输入/输出重定向 谢谢你,以及 – 2013-05-09 05:16:25
- 1. 将javascript函数的参数传递给java代码
- 2. 如何使用shell脚本将参数传递给java代码
- 3. 将命令行unicode参数传递给Java代码
- 4. GRADLE:TestNg - 无法将-D参数传递给java代码
- 5. REST传递参数与Java
- 6. 将参数传递给Java中的类
- 7. 将Jenkins中的参数传递给Java
- 8. 将参数传递给Java的Clojure
- 9. 传递参数给码头组合
- 10. 将url参数传递给简码
- 11. 将代码从c#传递给c作为函数参数
- 12. 将参数传递给代码后面的函数onclick
- 13. 将代表与参数一起传递给一个函数
- 14. 将参数传递给Yum与木偶
- 15. 将参数传递给geom_point2与地图
- 16. 参数传递给函数
- 17. 参数传递给函数
- 18. 传递JVM参数传递给SBT
- 19. 将参数传递给Web服务工作代码
- 20. XSS预防传递给JS代码文件参数
- 21. 如何将参数传递给NativeActivity代码序列中的CodeActivity
- 22. 将动态参数传递给js代码 - 哪个更好?
- 23. 代码C#传递参数给一个变量
- 24. IronPython DLR;传递参数给编译的代码?
- 25. 无法将处理程序参数传递给代码。新手
- 26. Process.Start - 将html代码传递给EXE作为参数
- 27. 将参数传递给代码后面的RelayCommand
- 28. 如何将值传递给qsub代码的boost选项参数
- 29. 传递代码作为参数(C++)
- 30. 传递代码作为参数
创建一个文本文件并传递数据不是很简单吗?这是一个奇怪的问题... – Fabiotocchi 2013-05-08 11:28:17
@Fabiotocchi可能是功课。 – millimoose 2013-05-08 11:29:05
你的问题不清楚。 C程序是从它自己打开的文本文件中读取输入,还是从'stdin'读取输入,并且希望Java程序将文本文件的内容传递给它?如果前者是在C文件中硬编码的文本文件的名称,还是它期望它作为参数? – millimoose 2013-05-08 11:31:22