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



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

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;
}

但是我尝试过的方法都没有奏效。我怎样才能做到这一点?

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

顺便说一下,这与您的情况相关:在初始化时定义位集大小?

编译时需要位集的长度,因此无论您如何尝试,都无法在运行时传递该值。

最新更新