我在C ++中编写了以下内容,以完成我发现的学习任务。目标是接受两个参数并在打印出来之前将它们加在一起。
我使用g ++编译程序并试图通过调用./a.out来运行它.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 ++。
答案 0 :(得分:9)
argv [0]是程序的名称。你需要argv [1]和argv [2]
和BTW - 你得到1的原因是因为atoi在第一个非数字上停止,在你的情况下它会立即停止并在读取程序名时返回零。所以y = 0且x = 1