main函数有两个参数,可以接收在启动exe文件时附加的参数。
其中argc就表示参数的个数,argv就表示你输入的其他参数的内容,比如:
#include
void
main(int
argc,
char
argv)
{
printf("参数个数:%d\n",
argc);
printf("第一个参数:%s\n",
argv[0]);
printf("第二个参数:%s\n",
argv[1]);
printf("第二个参数:%s\n",
argv[2]);
}
这个例子运行的时候输入:
文件名
abctxt
123txt
输出:
参数个数:3
第一个参数:文件名
第二个参数:abctxt
第二个参数:123txt
注意这个有参数的命令行是在控制台窗口输入或在VC中工程设置下的“调试----程序变量”中输入。
单变量参数传递比较方便,按下面写就可以了
dim a as string
a="123"
dim strShell as string
strShell="c:\hjssexe " & a & " s"
shell(strshell)
要传递数组,如果用循环完成上述的功能,则会产生50个程序启动请求,而如果目标程序没有对接受参数进行代码上的优化,就会启动50个目标程序。
所以数组传递比较麻烦,要涉及到数组或函数内存地址的传递。而且由于Windows的进程内存空间的保护,编写传递参数的代码十分繁琐,有点得不偿失。
所以如果目标程序是自己编写的,就可以通过读写文件来达到传递数组的目的。
但如果是不能修改的程序,那就比较麻烦了,基本很难满足要求。
——————————————————————————
如果目标程序支持这样调用的话,也是用同样的循环方法生成调用字符串
dim a[49] as string
'数组a赋值
dim strShell as string
dim i as integer
strShell="c:\hjssexe "
for i=0 to 49
strShell= strShell & a[i] & " " '参数间用空格分开
next i
strShell= strShell & " s"
shell(strshell)
int main(int argc,char argv[])
{
int i;
for(i=0;i<argc;i++)
{
printf("%s\n",argv[i]);
}
return 0;
}
cmd下C:\>testexe 1 2 3 4
以上就是关于C++如何调用带有输入和输出的exe程序全部的内容,包括:C++如何调用带有输入和输出的exe程序、vb中调用程序时参数传递、c语言系统调用编写程序,怎么用命令提示符输入参数,可以详细点,举个例子吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)