2015-01-21 159 views
0

我有C++程序。那裏我使用了C++。爲了運行該程序,我通過unix終端傳遞了值。但是我不能通過傳遞參數值來運行代碼片段。使用unix終端運行C++程序

  1. 獲得的bash構建路徑作爲

用戶/ venushka /庫/開發商/ Xcode中/ DerivedData/testFunctions-blcisknaxkrqribioawblwrttsib /建造/產品/調試

  • 我執行myFunctions bash作爲

    ./testFunctions

  • 我通過ARGS爲

    ./testFunctions 1

  • 請看下面的代碼片段,我用

    int main(int argc, const char * argv[]) { 
        // insert code here... 
        //std::cout << "Hello, World!\n"; 
        if (*argv[0] == 1) { 
         std::cout << "Hello, World!\n"; 
         //test(); 
        } 
        return 0; 
    } 
    

    當我給1以arg我PROGRAME線你好世界上還沒有執行。我做錯了什麼,請幫助我。謝謝 。請在下面找到My terminal image

    回答

    5

    圖像這是錯誤的:

    if (*argv[0] == 1) 
    

    的argv [0]是一個字符串,它是你的程序的名稱。取消引用(使用*)會爲您提供第一個字符。它永遠不會匹配1這是一個非打印的ASCII碼。相反:

    if (strcmp(argv[1], "1") == 0) 
    

    這將檢查程序(而不是它的名稱)的第一個參數是否爲字符串「1」。

    +0

    也可以使用'strtol(argv [1])'來比較整數。 – 2015-01-21 08:27:37