将* argv []中的偶数/奇数元素添加到数组

迈尔斯·伍德科克-吉拉德

我是C ++的新手,我正在制作一个简单的程序,该程序将值和单位作为系统参数并将它们全部转换为单个单位。命令行执行和输入如下所示:

./unit_conv 3 feet 5 inches centimeters

值和单位之间用空格隔开,最后一个参数是我想将所有内容转换为的单位。

我获取输入的方法是在最后一个元素之前将* argv []的所有偶数元素添加到一个称为“值”的整数数组中,并将所有奇数元素添加到一个称为“单位”的字符指针数组中。以下是我尝试的实现:

if (argc % 2 == 0) {
  char * desiredUnit  = argv[argc - 1];
  int values[argc];
  char * units[argc];

  int j;
  int k;
  for (int i = 1; i < argc; i++) {
    if (i % 2 == 1) {
      values[j] = atoi(argv[i]);
      j++;
    }
    else {
      units[k] = argv[i];
      k++
    }
  }
}

通过上面提到的执行,我得到以下信息:

Segmentation fault (core dumped)

我知道段错误正在我的for循环中发生。不过,我没有看到程序是如何尝试访问受限内存的。我已经坚持了很长时间。

希望我提供了足够的信息,但是如果我的问题太模糊,请告诉我。

谢谢!

艾曼·卡迪

您是否尝试过使用STL?

std::vector<std::string> units{};
std::vector<int> values{};

for (std::size_t i {1}; i < argc; ++i) {
    if (i % 2 == 0) {
        units.push_back(std::string{argv[i]});
    } else {
        values.push_back(std::atoi(argv[i]));
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将类添加到奇数和偶数表类中以使其左右浮动

来自分类Dev

将类添加到奇数和偶数表类中,以使其左右浮动

来自分类Dev

将argv复制到新数组

来自分类Dev

将数组元素添加到PHP中的数组

来自分类Dev

将 main 中的元素添加到类中的数组

来自分类Dev

CLion CMakeLists.txt将argv参数添加到配置

来自分类Dev

将元素添加到作为对象属性的数组中

来自分类Dev

RethinkDB,将元素添加到嵌套的数组中

来自分类Dev

Javascript-将类添加到数组中的元素

来自分类Dev

将addClass添加到数组中的元素

来自分类Dev

Elasticsearch脚本将元素添加到数组中

来自分类Dev

NGRX 8将元素添加到存储中的数组

来自分类Dev

将元素添加到Firestore中的数组

来自分类Dev

如何将元素添加到数组中的对象

来自分类Dev

将值添加到数组中的元素之一

来自分类Dev

将元素添加到javascript“字典”数组中

来自分类Dev

单击按钮将div元素添加到数组中

来自分类Dev

Elasticsearch脚本将元素添加到数组中

来自分类Dev

使用Mongoose将元素添加到MongoDB中的数组

来自分类Dev

将元素添加到数组中,然后找到不同的,

来自分类Dev

仅使用JavaScript代理将偶数添加到数组

来自分类Dev

仅使用JavaScript代理将偶数添加到数组

来自分类Dev

将argv转移到新数组中

来自分类Dev

将多个tds添加到额外的数组中以添加到tr元素节点

来自分类Dev

将元素添加到数组

来自分类Dev

将元素添加到numpy数组

来自分类Dev

将元素添加到空数组

来自分类Dev

将元素添加到数组的开头。

来自分类Dev

随后将元素添加到数组