我看过这样的帖子,但我找不到问题的确切答案。
我在C中编写了一个程序,通过说system("./program_name");
来调用我写的另一个exe。被调用的程序要求用户输入,并根据输入内容,在屏幕上显示三个字符串之一。
一旦system("./program_name");
运行程序,有什么方法可以让我的程序提供输入吗?我希望这个程序能够多次运行另一个程序,每次都提供不同的输入。然后,我希望程序显示哪些输入导致输出字符串2.
换句话说,程序1要求输入并显示字符串A,B或C. 程序2使用不同的输入多次运行程序1,并显示哪些输入产生了字符串B.
我坚持能够提供我程序的输入。
提前感谢您的帮助!! :)
答案 0 :(得分:2)
您可能希望使用system
(或在Microsoft-land中popen
),而不是使用_popen
。这使您可以打开子程序并且为您提供FILE *
,您可以通过该程序读取子项的标准输出,或者写入子项的标准输入(取决于您是否指定“r”)或“w”作为开放模式)。虽然非标准,但一些合理的近期版本允许阅读和写作(听起来你真的更喜欢)。
如果您不能执行后者,因为您似乎在Windows上执行此操作,您可以/可以使用CreateProcess
创建重定向输入和输出的子项。它的功能更多,而且还有更多很多的工作。