gpt4 book ai didi

c++ - 如何将命令行参数与 C++ 中的选项一起传递给函数?

转载 作者:太空狗 更新时间:2023-10-29 20:02:42 25 4
gpt4 key购买 nike

<分区>

我必须通过使用命令行参数(argv、argc)在 C++ 函数中传递系统配置详细信息。该函数如下所示:

  function(char * array[]){
windows_details = array[1];
graphic_card = array[2];
ram_detail = array[3];
procesor_detail = array[4];
}
int main(int argc, char *argv[]){
char *array[] = { argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]};
function(array);
}

所以,当我按如下方式执行程序 exe 时,我得到了正确的输出:

 sample.exe windows_32bit nividia 5Gb i7processor

但我担心的是每次值都必须按特定顺序排列,即用户必须注意“windows_details”将是第一个命令行参数,然后是“graphic_card”,同样是 ram_details 和 processor_details,所以这个解决方案是不稳健,即如果值序列互换,结果将不正确。我希望解决方案与序列无关,无论序列是什么,都可以在正确的位置替换值,也可以将命令行参数作为值传递给选项。例如如下:

sample.exe --configuration i7_processor 5GB windows_32bit nividia or
sample.exe --configuration 5GB i7_processor nividia windows_32bit or
sample.exe --configuration nividia windows_32bit 5GB i7_processor
.
.

所以,像上面一样,有选项“--configuration”,然后是任何顺序的详细信息。我尝试按如下方式添加选项部分,但它不起作用:

int main(int argc, char *argv[]){
char *array[] = { argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]};
std::string arg = *(reinterpret_cast<std::string*>(&array));
if (arg == "--configuration"){
function(array);
}
else {
std::cout << "Usage " << argv[0] << "\t--config\t\t Specify the configuration of target" << std::endl;
return 1;
}
return 0;
}

所以,请帮助我解决我的问题。我应该怎么做才能使它随着选项的增加而更加健壮?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com