[英]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.