嗨,我对编程比较陌生。
我想创建一个 C++ 程序,当你在 CMD 中调用它时,你可以传递变量。
例如在 cmd
Myprograme.exe 11 32 232 以便在计算中使用这些值。
C++
int main(float A, float B, float C){
float sum= A+B+C;
cout << sum;
return 0;
}
我的问题是我不知道你会怎么称呼这个过程,甚至谷歌它。
嗨,我对编程比较陌生。
我想创建一个 C++ 程序,当你在 CMD 中调用它时,你可以传递变量。
例如在 cmd
Myprograme.exe 11 32 232 以便在计算中使用这些值。
C++
int main(float A, float B, float C){
float sum= A+B+C;
cout << sum;
return 0;
}
我的问题是我不知道你会怎么称呼这个过程,甚至谷歌它。
的标准签名main
如下:
int main(int argc, const char **argv)
argc
是提供给程序的命令行参数的数量(包括参数编号 0,它是程序的名称)。
argv
是一个以 nul 结尾的字符串数组,每个字符串都包含适当的命令行参数。argv[argc]
是一个空指针。
您可以使用这些来解析命令行参数并将它们传递给您的计算。
例如,如果您在命令行上发出以下命令:
myprog.exe a bb c
argc
将是 4argv[0]
将会"myprog.exe"
argv[1]
将会"a"
argv[2]
将会"bb"
argv[3]
将会"c"
argv[4]
将是空指针main 方法可以有两个参数:
int main(int argc, char** argv)
{
}
argc
是参数的数量,并且argv
是一个包含每个参数值的 char* 数组。然后,您可以根据需要将 char* 转换为 float。注意,第一个参数是程序本身的名称。
你总是有一个主要的功能,比如
int main(int argc, char **argv)
{
}
第一个参数是参数的数量,argv 指向作为参数的 argc char*
。这意味着你得到的是字符数组而不是浮点数,这是完全可以理解的,因为你也可以写
Myprograme.exe ab cde fg
有关如何将 char* 转换为 float 的信息,请参阅将 char* 转换为 float 或 double。
回答你的第一个问题。
这被称为command line argumants
。
您可以使用此关键字搜索它。
这就是你试图做的。首先像这样定义主函数。
int main(int argc, char *argv[]) {
float sum,a,b,c;
a=atof(argv[0]);
b=atof(argv[1]);
c=atof(argv[2]);
sum=a+b+c;
cout<<sum;
}
现在您可以传递Myprograme.exe 11 32 232
将返回 275的参数
@danial weaber 这是一个很好的例子,但它并没有达到正确的总和。那是因为它没有找到 c。
你的例子应该是:
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
float sum,a,b,c;
sum=atof(argv[0]);
a=atof(argv[1]);
b=atof(argv[2]);
c=atof(argv[3]);
sum=a+b+c;
cout<<sum;
}
只是想指出这一点,这样当他们使用... Myprograme.exe 11 32 232 运行它时,它将返回 275。
此外,某些 ide 可能无法正确运行您的代码。很多时候使用notepadd++然后在命令行中编译你的代码,你可能会得到正确的结果。祝你好运