【发布时间】:2012-11-18 00:26:11
【问题描述】:
我想获取一个命令行参数(它将是一个大于零的整数)并将其用作函数中的整数参数(以决定使用函数的哪一部分)。
double func(double x, double y, double z, int n) {
if (n==1) { return 1; }
if (n==2) { return 2; }
// etc
}
int main (int argc, char *argv[]) {
int n = argv[1];
// etc, later I call func(x,y,z,n) with this definition of n
}
当我尝试编译时,我收到了一些警告:
warning: invalid conversion from ‘char*’ to ‘int’
warning: initializing argument 4 of ‘double func(double, double, double, int)’
我想我明白为什么会这样,只是不知道如何解决。到目前为止,我发现谷歌搜索没有任何帮助。我是 C++ 的新手,任何能指引我正确方向的信息都会很棒。感谢您的时间。
【问题讨论】:
-
提示:
argv的类型为char**。你可以把它想象成一个字符串数组。 -
参数将不是大于零的整数。这将是一个 C 风格的字符串,希望 表示大于零的整数的值。您需要将该 C 样式字符串转换 为它所代表的值。