Как я могу передать константу int через аргумент командной строки в 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;
}

Но ни один из способов, которыми я пробовал, не работал. Как я могу сделать это?

3

Решение

Если он будет передан в качестве аргумента командной строки, вы не сможете сделать его константой.

Кстати, это относится к вашему случаю: Определить размер набора битов при инициализации?

4

Другие решения

Длина набора битов необходима во время компиляции, поэтому независимо от того, как вы ее попробуете, невозможно передать это значение во время выполнения.

2

По вопросам рекламы [email protected]