嗨我對編程相對比較陌生。從命令行使用CMD中指定的變量或從另一個程序的系統調用調用C++
我想創建一個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;
}
我的問題是我不知道你們所說這個過程,甚至谷歌它。
嗨我對編程相對比較陌生。從命令行使用CMD中指定的變量或從另一個程序的系統調用調用C++
我想創建一個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,其是程序的名稱),該comman行參數的數量。
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]
將是空指針主要方法可有兩個參數:
int main(int argc, char** argv)
{
}
argc
是參數的個數,和argv
是包含每一個參數的值的char *的陣列。然後你可以將你的char *轉換爲你想要的。注意,第一個參數是程序本身的名稱。
你總是有一個像
int main(int argc, char **argv)
{
}
主函數的第一個參數是argc那樣char*
S的是參數的參數的個數,argv的點。這意味着你得到字符陣列,而不是花車這是絕對可以理解的,因爲你也可以寫
Myprograme.exe A B CDE FG
見Converting char* to float or double如何轉換的char *浮動。
answe關於第一個問題。這被稱爲命令行爭論者。你可以使用這個關鍵字來谷歌這一點。
這是你試圖做的。首先像這樣定義主函數。
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可能無法正確運行您的代碼。 很多次使用notepad ++然後在命令行中編譯您的 代碼,您可能會得到正確的結果。好運
它將被稱爲傳遞命令行參數.. – asheeshr