如何从c程序读取输出并向程序提供输入?

问题描述 投票:0回答:3

这是参考以下问题:

从 C 程序中执行程序

如何在 Windows 上使用 Tiny C 编译器执行相同操作? 我需要从 C 程序执行 .exe,并使用文件或字符串作为源从同一 C 程序中向其提供输入,并将其输出读取到字符串或文件中。我一直在使用 system() 功能。欢迎任何建议或示例..提前致谢

c windows input system
3个回答
3
投票

如果您没有 popen() 等,或者您想避免复杂性,最简单的方法就是简单地编写一个数据文件,例如。 infile 用 fwrite() 执行外部程序用 system() 然后读取 outfile。

system("prog.exe <infile >outfile") 

您的 prog.exe 只需读取 stdin 并写入 stdout。

这样您就可以轻松地使用输入/输出文件的内容进行测试。 您通常会在 tmp 目录中执行此操作,然后在完成后删除它们。

唯一需要注意的是.exe的路径


1
投票

Google 搜索“windows popen”,您会找到此链接:

lists.trolltech.com/qt-interest/1999-09/thread00282-0.html

C 运行时库也有 _popen(),但我建议不要使用它。


0
投票

一家公司希望客户按照 1 到 5 的等级对他们的服务进行评分。他们希望使用数组来存储客户的响应数量。数组元素 0 存储 1 的响应数量,数组元素 1 存储 2 的评分,依此类推。编写一个 C 程序来执行以下操作: (a) 声明一个名为“rate”、大小为 5 的一维数组。 (b) 将所有数组元素初始化为零。 (c) 从键盘读取评级(从 1 到 5 的数字)并将每个评级的响应存储在数组中。您应该阅读回复 5 遍。无标题问题 样本输入/输出 如果用户输入的数字小于 1 或大于 5,则显示相应的错误消息。

输入格式:

请输入您的评分:4 请输入您的评分:3 请输入您的评分:5 请输入您的评分:1 请输入您的评分:3

(d) 显示每个评级的回复数量,如下所示。

评分  回复数 1 1 2 0 3 2 4 1 5 1

© www.soinside.com 2019 - 2024. All rights reserved.