【问题标题】:passing on inputs to an exe file using c++使用 C++ 将输入传递给 exe 文件
【发布时间】:2014-09-22 10:31:17
【问题描述】:

假设我们有一个cal.exe 文件(一个用c++ 编程的简单加法计算器)。 假设控制台输出屏幕首先显示enter the first number: 并等待用户输入一个整数值。我愿意创建一个 c++ 程序,它将所需的值“传递”给正在运行的进程(cal.exe)作为输入(扮演用户的角色)。我还想让cal.exe 文件的输出由我的程序显示和解释。

我完全不知道如何进行此操作。是否有任何开源库可以帮助我完成此任务?如果有,你能说出几个吗?

我去年在学校刚学过 C++ 面向对象编程,我不习惯编程中的这些东西;所以如果这个问题很愚蠢,请原谅。

更新:

让我们考虑 2 个进程 a.exe 和 b.exe 正在运行。你能告诉我一种可能的方式来编写 b.exe,它为 a.exe(一个控制台进程)提供一个整数输入,就好像它来自用户一样?

【问题讨论】:

  • 您可以使用cin 读取控制台输入。要在控制台上打印,您可以使用 cout 例如。
  • 请原谅我的拼写错误
  • 哦,你是说Inter-process communication?还有这个answer here
  • 是的;您能参考我可以用来实现此目的的任何库文件吗?
  • @user3633270 对于图书馆,请查看我之前评论中的第二个链接。要了解有关所有选项的更多信息,请查看第一个链接。

标签: c++ process io console


【解决方案1】:

你可以通过接受命令行参数来做到这一点。像这样

int main (int argc, char *argv[]) {

enter code here
return 0;

}

在哪里, 主函数(argc)的第一个参数是指在运行时传递给程序的参数数量。 第二个(char *argv[])指的是一个包含传递参数的字符串(char * 也被视为字符串)。

参数名称可能因用户规范而异。

详情参考: http://www.cplusplus.com/articles/DEN36Up4/

对于程序的嵌套,您可以使用 stdlib.h 下的 system("name of child program going here") 函数。

详情参考: http://www.cplusplus.com/reference/cstdlib/system/

【讨论】:

  • 这仅在一个可执行文件启动另一个时有效,并且必须在启动第二个可执行文件时传递所有数据。
  • 您可能想要搜索“linux expect 实用程序”。它是一个独立程序,带有用于解决这类问题的脚本语言。
猜你喜欢
  • 2011-12-11
  • 1970-01-01
  • 2013-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-15
相关资源
最近更新 更多