如何在C ++中通过命令行参数传递常量int?

时间:2017-05-09 16:54:37

标签: c++ const command-line-arguments bitset variable-types

我希望能够通过命令行参数传递一个整数,我将调用它。我需要使它保持不变,因为它将用于确定几个位集的大小。我尝试过这么多方法,例如:

int main(int arc, const char* argv[]){
        const int * ptr;
        if (!(istringstream{argv[1]} >> ptr)) { return 1;}
        const int length = *ptr;

        bitset<length> right_ones = 1;
        return 0;
}

我也是这样试过的:

int main(int arc, const char* argv[]){
        int test_int;   
        if (!(istringstream{argv[1]} >> test_int)) { return 1;}
        const int length = argv[1];

        bitset<length> right_ones = 1;
        return 0;
}

但我尝试过的方式都没有奏效。我怎么能做到这一点?

2 个答案:

答案 0 :(得分:4)

如果它将作为命令行参数传递,则不能使其成为常量。

顺便说一句,这与您的案例相关:Define bitset size at initialization?

答案 1 :(得分:2)

在编译时需要bitset的长度,所以无论你如何尝试它,都无法在运行时传递该值。