2015-10-19 68 views
0

我在C++中編寫了以下代碼,以完成我發現的學習任務。目標是接受兩個參數並在打印出來之前將它們相加。接受兩個參數以便將它們添加到C++中

我使用g ++編譯程序,並試圖通過調用./a.out 1來運行它。2.結果是1.它似乎沒有打印出x + y,並且只是顯示第一個參數。我在這裏做錯了什麼?我的期望是,我會顯示該號碼3.

#include <iostream> 
using namespace std; 

int x, y, z; 

int main(int argc, char *argv[]) { 
    y = atoi(argv[0]); 
    x = atoi(argv[1]); 
    z = (x + y); 
    cout << z << endl; 
    return 0; 
} 

免責聲明 - 這是來自一本教科書,但我沒有做這個功課。這是我試圖自我教自己C++。

+2

在第一行放置一個斷點並檢查調試器中實際包含的argv。你可能會對你發現的東西感到驚訝。 – MrEricSir

+2

只要你可以,你應該適應使用調試器(在你的情況下gdb),谷歌'gdb教程'或類似的東西 – pm100

回答

9

argv [0]是程序的名稱。你需要argv [1]和argv [2]

和順便說一句 - 你得到1的原因是因爲atoi停在第一個非數字上,在你的情況下,它立刻停止並在讀取程序名時返回零。所以y = 0和x = 1

相關問題