如何在 C++ 中通过命令行参数传递常量 int?
How can I pass a constant int via command line argument in C++?
我希望能够通过我将称为长度的命令行参数传递一个整数。我需要使这个常量,因为它将用于确定几个位集的大小。我尝试过很多方法,例如:
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;
}
但是 none 我试过的方法都奏效了。我怎样才能做到这一点?
如果要将其作为命令行参数传递,则不能将其设为常量。
顺便说一句,这与你的情况有关:Define bitset size at initialization?
编译时需要位集的长度,因此无论您如何尝试,都无法在运行时传递该值。
我希望能够通过我将称为长度的命令行参数传递一个整数。我需要使这个常量,因为它将用于确定几个位集的大小。我尝试过很多方法,例如:
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;
}
但是 none 我试过的方法都奏效了。我怎样才能做到这一点?
如果要将其作为命令行参数传递,则不能将其设为常量。
顺便说一句,这与你的情况有关:Define bitset size at initialization?
编译时需要位集的长度,因此无论您如何尝试,都无法在运行时传递该值。