在C中,我编写了一个使用system()调用exe的程序。 exe要求用户输入。如何让我的程序提供输入?

时间:2013-06-30 23:53:42

标签: c system parent-child

我看过这样的帖子,但我找不到问题的确切答案。 我在C中编写了一个程序,通过说system("./program_name");来调用我写的另一个exe。被调用的程序要求用户输入,并根据输入内容,在屏幕上显示三个字符串之一。

一旦system("./program_name");运行程序,有什么方法可以让我的程序提供输入吗?我希望这个程序能够多次运行另一个程序,每次都提供不同的输入。然后,我希望程序显示哪些输入导致输出字符串2.

换句话说,程序1要求输入并显示字符串A,B或C. 程序2使用不同的输入多次运行程序1,并显示哪些输入产生了字符串B.

我坚持能够提供我程序的输入。

提前感谢您的帮助!! :)

1 个答案:

答案 0 :(得分:2)

您可能希望使用system(或在Microsoft-land中popen),而不是使用_popen。这使您可以打开子程序并且为您提供FILE *,您可以通过该程序读取子项的标准输出,或者写入子项的标准输入(取决于您是否指定“r”)或“w”作为开放模式)。虽然非标准,但一些合理的近期版本允许阅读和写作(听起来你真的更喜欢)。

如果您不能执行后者,因为您似乎在Windows上执行此操作,您可以/可以使用CreateProcess创建重定向输入和输出的子项。它的功能更多,而且还有更多很多的工作。