gpt4 book ai didi

c++ - 使用C++将命令行参数拆分为参数/vector

转载 作者:行者123 更新时间:2023-12-02 10:21:01 29 4
gpt4 key购买 nike

我有一个C++项目,该项目以前使用以下代码接收多个命令行参数:

int main(int argc, char *argv[]) {

for (int i = 1; i < 4; i = i + 1) {
// do some stuff with argv[i]
int in_arg = m[argv[i]];
}

return 0
}

使用此代码,示例命令行参数可能是:
C:\MyFolder\MyExecutable.exe 4 0 1

但是,由于将此代码插入到更广泛的项目中,因此我的命令行现在必须看起来像这样:
C:\MyFolder\MyExecutable.exe 401

如何将参数 401拆分为 vector 或类似函数,其功能与具有 4 0 1这样的三个输入参数的函数相同,因此我的代码行:
int in_arg = argv[i];

...可以指向类似以下的内容:
int in_arg = new_vector[i];

我只涉足C++,所以如果我问基本问题,我深表歉意。

谢谢

最佳答案

如果您已经知道第一个参数很简单,可以将其复制到字符串中,然后使用C++提供的迭代选项之一进行访问,那么我使用的是foreach类型循环:

#include <iostream>
#include <vector>

int main(int argc, char** argv)
{
if(argc < 2){
std::cout << "Not enough arguments"; //<-- args check
return 0;
}
std::string s1;
s1 = argv[1]; //<-- copy argument to a string type to use string iterator
std::vector<int> args_vector;

for (char c : s1) {
args_vector.push_back(c - '0'); // convert char to integer and save it in vector
}

for(int i: args_vector){ // print the args in integer format, 1 by 1
std::cout << i << " ";
}
return 0;
}

关于c++ - 使用C++将命令行参数拆分为参数/vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60156355/

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