2015-08-27 88 views
1

我寫了一個程序,只需要一個整數在輸入(N)。
我想,這樣只有在該值在執行,像這樣以某種方式把它寫:讀取變量作爲參數執行

g++ solve.cpp -o solve 
solve 6 

凡6(N)可以是任意整數。


有沒有人有任何想法如何做到這一點?我已經嘗試使用:

int main(int N) { ... } 

,我最終得到了警告:

solve.cpp:5:5: warning: ‘int main(int)’ takes only zero or two arguments [-Wmain] 
int main(int N) 

仍然讓我們編譯它,但是現在它最終得到N = 2,不管我用什麼輸入N.

任何想法如何做到這一點?

在此先感謝!

回答

2

這裏是你需要的東西:

#include <stdio.h> 
#include <stdlib.h> 

int main(int argc, char *argv[]) 
{ 
    if(argc != 2) 
    { 
     printf("not enough numbers or too many\n"); 
     exit(1); 
    } 

    printf("%d\n", atoi(argv[1])); 

    return 0; 
} 

ARGC值在你的論點+ 1實際上號,所以如果你只執行solve,然後ARGC的值將是1.當通過一個號碼(N)作爲參數,如:solve 6,argc將爲2.這是我的if條件的解釋,因爲如果argc與2不同,則可能返回錯誤。

+1

啊這使得更有意義。非常感謝您的詳細解釋! – khfrekek