请问c++如何同时运行2个exe文件并不断向其中进行标准输入

作者&投稿:汤樊 (若有异议请与网页底部的电邮联系)
C++程序如何将标准输入重定向为文件输入?~

先进行编译生成exe,然后在命令行终端下,键入 程序名 test2.out )【注意,in和out只不过是后缀而已,可以改为txt】
如图(测试环境:windows cmd)

中间的空格windows和unix下是不一样的,可能加也可能不加。具体可见《c primer plus 第六中文版》P223,P225

如果不记得如何使用cin设置,可以使用scanf,没有必要非得使用cin和cout

最简单的,调用 DOS 命令,分别开2个窗,同时工作:
#include <stdio.h>
int main()
{
system( "start \"a1\" a1.exe"); // 窗名a1, 运行 a1.exe
system( "start \"a2\" a2.exe"); // 窗名a2, 运行 a2.exe
return 0;
}
==================
把两个程序做成2 个线程,或一个做主函数,一个做函数,共享标准输入输出资源
c++ 程序:
#include <iostream>
#include <windows.h>
using namespace std;

HANDLE hMutex; //公用资源句柄
int x1=0,x2=0;

DWORD WINAPI Fun(LPVOID lpParamter)
{
while(1) {
WaitForSingleObject(hMutex, INFINITE);
cout<<"intput x1:"<<endl; // 第1个程序嵌入这里
cin >> x1;
cout << "x1="<<x1<< endl;
Sleep(1000);
ReleaseMutex(hMutex);
}
}
int main()
{
hMutex = CreateMutex(NULL, FALSE, "screen");
HANDLE hThread = CreateThread(NULL, 0, Fun, NULL, 0, NULL);
CloseHandle(hThread);
while(1) {
WaitForSingleObject(hMutex, INFINITE);
cout<<"input x2:"<<endl; //第2个程序嵌入这里
cin >> x2;
cout << "x2="<<x2<<endl;
Sleep(2000);
ReleaseMutex(hMutex);
}
return 0;
}
----
模拟2个线程,交替通过申请获得 标准输入输出设备 使用 权。

C++是运行在DOS系统下的,DOS系统是单任务操作系统,CPU不能被分享,所以你的设想有点“过分”。当然用VC,VS编写的代码是运行在WINDOWS下的,WINDOWS系统是多任务系统,同时可以有多个任务运行,这样来说,你的代码要求就容易解决了,不过这要涉及到多线程操作。

其实你是不是想同时运行两个应用程序A,B。
A,B。都能接收到标准输入的数据。

其实这很简单写两个exe,都循环调用getchar()之类的接收函数,不退出。
这样不就行了么

这个是设计进程间的通讯还有多线程的运用,本人是ARM嵌入式开发专业的 我举个例子吧 你要的效果有点像QQ 我打开QQ了 我既能远程操控电脑也能同时跟别人聊天 而且我点一下QQ游戏自动弹开游戏网页
其实只要你设定好广播 然后发送一个sock(在这之前要做一个套接字监控,当然这是比较复杂点点的)
另外如果你想做的比较简单的 直接用system()这个函数,连用两个就能达到你的要求,只是这样做事毫无意义的,本人推荐你用上面的方法


c语言图形界面 可不可以两个独立的循环同时运行
呵呵,你说的情况就是程序设计中的多线程。一个进程中可以创建多个线程,并发执行,共享内存。理论上是可以的。操作系统大部分代码都是C写的。但是实际的程序设计应用大多数还是用的基于C++的windows多线程方面提供的接口。比如VC++就提供这样的API。或者JAVA的thread,编写多线程程序更加直观方便。楼主你是...

两个程序同时运行
如果想改动最小,可以在1.c中调用2.c,反之也行,或改循环使用第3个函数来调用 现在你的函数现在大概是 fun1 (**) { for (unsigned i=1; i<101, i++) { 代码1;} } fuc2 (**) { for (unsigned i=1; i<101, i++) { 代码2;} } 可以改成这种形式,或倒过来也行 fun1 (*...

matlab中如何使用并行运算进行多行语句同时运行
像这样的问题其实不用并行计算也可以的,有其它方法也可以加快速度,比如使用bsxfun函数,可以同时计算A,B,C中元素:C = bsxfun(fun, A, B)像题主的程序中有四个同样的运算,就可以这样写:C = bsxfun(SRD, SN,GD,DN,RN)其中 C 包含了四个元素,SN,GD,DN,RN分别为函数SDR 输入的第一、二...

上机运行一个c程序的4个步骤
拓展知识:这四个步骤看起来很简单,但实际上可能存在一些问题。例如,你可能需要确保你的环境已经正确配置了C编译器。你也需要了解如何处理编译错误和警告。在某些情况下,你可能需要阅读和理解生成的错误消息以找出问题所在。总的来说,这是一个相对简单的过程。对于初学者来说,这仍然可能需要一些时间和...

windows批处理 如何同时运行多个进程
比如:——以下为“批处理0.bat”的内容——echo off start 批处理1.bat start 批处理2.bat start 批处理3.bat ———结束———以下为“批处理1.bat”的内容———结束———……类推……不过建议你试试这样的命令格式:cd "C:\\redis-2.0.2"start "redis" redis-server.exe redis.conf...

联想p1c72如何同时看电视和联QQ
联想P1c72手机同时运行看电视软件和使用QQ,建议将QQ软件在后台不退出联网运行,而看电视软件在前台运行观看即可。该机主要介绍:1.采用高通MSM8939 64位八核处理器,主频1.5GHZ, 搭配3GB RAM + 16GB ROM以及安卓5.1的系统;2.屏幕方面采用5.5英寸,1080P(1920*1080)高清IPS屏,搭载500万像素的...

C语言中&怎么用
最近”盘“字很流行,盘是什么意思?为什么能成为网络热词?

一批空运货如何同时做T\/T和L\/C两份提单?
实际上要看你的信用证货物数量与金额怎么开,如果信用证上的货物是TT与LC的总量,LC上的金额只是LC的金额,那么单据可以是一套,走银行就行。T\/T不需要单据,在发票上注明多少金额已经T\/T就可以。

tssd2010、CAD2008、天正建筑8.5能共存同时运行吗?请高手赐招,如何设置...
【专业回答】完全可以同时运行。方法如下。支持xp和win7 32位操作系统。1.安装CAD2008,然后安装天正和TSSD。2.运行天正。3.执行PREFERENCES命令,在文件选项里面添加tssd2010的路径。C:\\Program Files\\Tssd2010S\\Prg C:\\Program Files\\Tssd2010S\\Sys17 4.执行menuload命令,选择“浏览”,找到C:\\...

简单的C问题
3)所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。4)char型和short型参与运算时,必须先转换成int型。5)在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度左边长时,将丢失一...

千山区18795431112: 请问c++如何同时运行2个exe文件并不断向其中进行标准输入 -
隗生硝普: 最简单的,调用 DOS 命令,分别开2个窗,同时工作:#include <stdio.h> int main() { system( "start \"a1\" a1.exe"); // 窗名a1, 运行 a1.exe system( "start \"a2\" a2.exe"); // 窗名a2, 运行 a2.exe return 0; }================== 把...

千山区18795431112: C++怎么实现把两个EXE串行执行
隗生硝普: windows 下 CSDN 找下 这个函数 ShellExecute

千山区18795431112: 怎么用C++打开另一个用C++写的.exe -
隗生硝普: 1、B.exe必须支持命令行参数 2、这里演示Notepad打开txt文件 #include #include int main(int argc, char* argv[]){ char path_max[1024]; if(argc > 1) { for(int i = 1; i

千山区18795431112: 如何让 dev c++同时计算两个程序? -
隗生硝普: windows就是多任务的啊,你编译好了,想运行几个就运行几个当然程序中如果要操作文件,最好从命令行参数输入:从1.txt读取数据,处理后保存到a1.txt test.exe 1.txt a1.txt从2.txt读取数据,处理后保存到a2.txt test.exe 2.txt a2.txt

千山区18795431112: 如何让一个exe程序实时调用另外一个exe程序的变量作为其输入(两个程序都是c++) -
隗生硝普: 你这个问题的本质是IPC(进程间通讯)问题,属于操作系统中的常见问题.如果在Windows中应当使用事件(SetEvent)、互斥量(Mutex)等方法来解决.另外,由于C/C++属于编译型语言,不能保证任何一个变量编译后(尤其是优化后)都仍然存在,所以从一个程序中直接访问另外一个程序中的变量几乎不可能.特别的,对于调试器来说,调试器利用编译器生成的符号表来识别其它可执行文件中的变量,并通过特殊的手段替换被调试程序中的代码检测被调试程序中的变量是否发生了变化,但这一过程严重影响被调试软件的运行效率.调试器的复杂程度远远超过普通初学者的理解范围.

千山区18795431112: c++不能同时打开两个程序是怎么回事 -
隗生硝普: 这个我也有同样的疑问.猜测的原因是C++标准推出的时候,多核处理器还没有出现,所以程序调用没有考虑到并行性. 另外,C++语句是顺序执行的,就算是你写了并行代码,他也会顺序执行啊..

千山区18795431112: 一个C++exe文件,如何调用或者组合多个C++源程序文件
隗生硝普: 用system函数,参数是一个string,就像写批处理一样.

千山区18795431112: 怎么样把vc++打开同时也打开exe文件?
隗生硝普: F5 调试运行 你可以做VC插件 网上应该有相关的资料 具体的我就不十分了解了 插件可以启动DLL,然后你想做什么就可以做了

千山区18795431112: 求助,一个简单问题,如何在c++中调用其他exe程序 -
隗生硝普: 用execl系列函数,int execl(const char *path, const char *arg, ... /* (char *) NULL */); int execlp(const char *file, const char *arg, ... /* (char *) NULL */); int execle(const char *path, const char *arg, ... /*, (char *) NULL, char * const envp[] */); int execv(...

千山区18795431112: C++中怎么一次写两个文件! -
隗生硝普: FILE* fp1 = fopen(filename1, "rb"); FILE *fp2 = fopen(filename2, "rb"); 这样对两个文件可以分别操作了.fwrite(..., fp1); fwrite(..., fp2);

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网