只能是这样的啊
agrc 表示参数的个数
agrv 里面存放的详细的信息
agrv [0]表示程序的名称和路径
agrv[1]表示这个程序的第一个参数
agrv[2]表示的是这个程序的第二个参数
以此类推
argc 表示参数个娄,如果要接受一个
main.....
{
double a=*((double *)(argv[1]));
int b =*((int *)(argv[2]));
......
}
比如说生成的可执行文件叫1
则./1 3.2 8就行了
这是linux下运行方式,win32的
//a=*((double *)(argv[1])); //底a和指数n的转化!
sscanf(argv[1],"%lf",&a);
// n=*((int *)(argv[2]));
sscanf(argv[2],"%d",&n);
好像还有问题,result没有初始化,argv里存放的是字符串,要转化成数
result=1,你a==*((double *)(argv[1])); //底a和指数n的转化!也错了,应该=,粗心了吧,,
经测试
1、int main(int argc, char *argv[])
2、 a=atof(argv[1]);
n=atoi(argv[2]);
#include "stdafx.h"
#include
int main(int argc, char *argv[])
{
int i, n;
double a;
double result = 1;
if(argc!=3) // 如果输入个数大于3,和a,n都为0则输出错误!
{
printf("Error!.\n");
return 1;
}
a=atof(argv[1]); //底a和指数n的转化!
n=atoi(argv[2]);
if(a!=0&&n>0)
{ //指数和底不为0
for(i=0;i
printf("%0.2lf^%d=%0.2lf.", a, n, result);
}
else //其他情况
printf("%0.2lf^%d=%0.2lf.", a, n, result);
return 0;
}
经测试
1、int
main(int
argc,
char
*argv[])
2、
a=atof(argv[1]);
n=atoi(argv[2]);
#include
"stdafx.h"
#include
int
main(int
argc,
char
*argv[])
{
int
i,
n;
double
a;
double
result
=
1;
if(argc!=3)
//
如果输入个数大于3,和a,n都为0则输出错误!
{
printf("Error!.\n");
return
1;
}
a=atof(argv[1]);
//底a和指数n的转化!
n=atoi(argv[2]);
if(a!=0&&n>0)
{
//指数和底不为0
for(i=0;i
printf("%0.2lf^%d=%0.2lf.",
a,
n,
result);
}
else
//其他情况
printf("%0.2lf^%d=%0.2lf.",
a,
n,
result);
return
0;
}
你 不理解吗 第一个参数 是 表明 参数的个数 而参数都是以字符串格式 接收进来的
接收进来自己转换下 比如 test.exe 123.44 55.77 cccc
都是可以的 可以 接收任何形式的参数 可以接收多个参数