zoukankan      html  css  js  c++  java
  • c++ parse argv

    #include <iostream>
    #include <format>
    
    int main(int argc, char* argv[])
    {
      if (argc > 1) {
        char prefix;
        char* opt;
        int valIndex;
        char* val;
        for (size_t i = 1; i < argc; i++)
        {
          prefix = *argv[i];
          if (prefix == '-')
          {
            opt = (argv[i] + 1);
            switch (*opt)
            {
            case 'i':
              valIndex = ++i;
              if (valIndex < argc) {
                val = argv[valIndex];
                std::cout << val << "
    ";
              }
              break;
            case 'o':
              valIndex = ++i;
              if (valIndex < argc) {
                val = argv[valIndex];
                std::cout << val << "
    ";
              }
              break;
            default:
              std::cout << std::format("Error:未知的选项 '{}'", argv[i]) << "
    ";
              return 1;
            }
          }
          else
          {
            std::cout << std::format("Error:未知的前缀 '{}'", prefix) << "
    ";
            return 1;
          }
        }
      }
      else
      {
        std::cout << std::format("没有参数") << "
    ";
      }
    
      return 0;
    }
    

    测试:

    > t.exe -i "input" -i "output"
    input
    output
    
    > t.exe -a "asd.txt"
    Error:未知的选项 '-a'
    
    > t.exe -i "input" -i
    input
    
    > t.exe +i "input"
    Error:未知的前缀 '+'
    
  • 相关阅读:
    Mysql多表查询
    Mysql单表查询
    初始mysql语句
    MySql安装和基本管理
    jQuery的ajax
    关于DOM操作的相关案例
    DOM介绍
    关于DOM的事件操作
    使用正则写一个计算器

  • 原文地址:https://www.cnblogs.com/ajanuw/p/14854357.html
Copyright © 2011-2022 走看看