0

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

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

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

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

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

4

1 回答 1

2

而不是使用system,您可能想要使用popen(或者,在微软领域,_popen)。这使您可以打开子程序为您提供一个FILE *可以读取子程序标准输出或写入子程序标准输入的方法(取决于您是否指定“r”或“w”作为打开模式)。虽然非标准,但一些相当新的版本允许读取和写入(听起来你真的更喜欢)。

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

于 2013-07-01T00:04:10.137 回答