2012-11-26 35 views
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; 
} 

我的問題是我不知道你們所說這個過程,甚至谷歌它。

+0

它將被稱爲傳遞命令行參數.. – asheeshr

回答

2

main標準簽名如下:

int main(int argc, const char **argv) 

argc是被提供給程序(包括參數號0,其是程序的名稱),該comman行參數的數量。

argv是一個由nul結尾的字符串組成的數組,每個字符串都包含相應的命令行參數。 argv[argc]是一個空指針。

您可以使用它們來解析將它們傳遞給您的計算的命令行參數。

例如,如果您發出命令行中執行以下操作:

myprog.exe a bb c 
  • argc將4
  • argv[0]"myprog.exe"
  • argv[1]"a"
  • argv[2]"bb"
  • argv[3]"c"
  • argv[4]將是空指針
0

主要方法可有兩個參數:

int main(int argc, char** argv) 
{ 
} 

argc是參數的個數,和argv是包含每一個參數的值的char *的陣列。然後你可以將你的char *轉換爲你想要的。注意,第一個參數是程序本身的名稱。

0

你總是有一個像

int main(int argc, char **argv) 
{ 
} 

主函數的第一個參數是argc那樣char* S的是參數的參數的個數,argv的點。這意味着你得到字符陣列,而不是花車這是絕對可以理解的,因爲你也可以寫

Myprograme.exe A B CDE FG

Converting char* to float or double如何轉換的char *浮動。

0

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

0

@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 ++然後在命令行中編譯您的 代碼,您可能會得到正確的結果。好運

相關問題