簡體   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