繁体   English   中英

使用CMD中指定的变量或其他程序的系统调用从命令行调用c ++

[英]Calling c++ from command line with variables specified in CMD or from the system call of another program

嗨,我对编程比较陌生。

我想创建一个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是一个以空字符结尾的字符串数组,每个字符串都包含相应的命令行参数。 argv[argc]是一个空指针。

您可以使用它们来解析命令行参数,并将它们传递给您的计算。

例如,如果在命令行上发出以下命令:

myprog.exe a bb c
  • argc将是4
  • argv[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* s,它们是参数。 这意味着你得到char数组而不是浮点数,这是绝对可以理解的,因为你也可以写

Myprograme.exe ab cde fg

请参阅将char *转换为float或double以了解如何将char *转换为float。

回答你的第一个问题。
这称为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 ++然后在命令行中编译代码,您可能会得到正确的结果。 祝好运

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM