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

标签 c++ command-prompt

我有一个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/

相关文章:

c++ - 纯虚方法调用

php - 使用命令行将文本文件导入 MySQL 数据库

c++ - c++中的编译单元是如何定义的?

c++ - 有没有办法从 GUID 中找到时间戳(创建时间)?

c++ - 我可以将/dev/sda用作普通的顺序文件吗?

C++将一个数组拆分为2个单独的数组

PHP:将 UTF-8 字符回显到 Windows 命令行中

c# - 通过 C# 控制台应用程序运行批处理文件。命令被忽略

c++ - 按住滚动条获取命令提示符以在 Windows 中暂停

git - 显示 git 分支名称或提交 ID