繁体   English   中英

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

[英]In C, I wrote a program to call an exe using system(). The exe asks for user input. How can I make my program provide the input?

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

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

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

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

在此先感谢您的帮助!! :)

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

如果您不能执行后者,因为您似乎在Windows上执行此操作,您可以/可以使用CreateProcess创建具有重定向输入和输出的子项。 这是更灵活,但也有很多更多的工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM