Advertisement
Guest User

Untitled

a guest
Jul 12th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.58 KB | None | 0 0
  1.  
  2.     const char *mode;          
  3.     const char *device_path;   
  4.     const char *file_path;     
  5.     int bytes = 0;             
  6.     int position = 0;          
  7.    
  8.    
  9.     std::set<char> parms;
  10.  
  11.  
  12.  
  13.     for (int i = 1; i <= (argc - 1); i++)
  14.     {
  15.         if (std::string(argv[i]) == "-m")
  16.         {
  17.             if (mode != nullptr)
  18.             {
  19.                 std::cerr << argv[i] << " overload!";
  20.                 return 1;
  21.             }
  22.  
  23.             if ((i + 1) > (argc - 1))
  24.             {
  25.                 std::cerr << "Incorrect parameter usage!\n";
  26.                 getchar();
  27.                 return 1;
  28.             }
  29.  
  30.             mode = argv[i + 1];
  31.             parms.insert('m');
  32.            
  33.             std::cout << "mode = " << mode << std::endl;
  34.             getchar();
  35.         }
  36.  
  37.  
  38.         else if (std::string(argv[i]) == "-d")
  39.         {
  40.             if (device_path != nullptr)
  41.             {
  42.                 std::cerr << argv[i] << " overload!";
  43.                 return 1;
  44.             }
  45.  
  46.             if ((i + 1) > (argc - 1))
  47.             {
  48.                 std::cout << "error, no value found";
  49.                 getchar();
  50.                 return 1;
  51.             }
  52.            
  53.  
  54.             device_path = argv[i + 1];
  55.             parms.insert('d');
  56.             std::cout << "device = " << device_path << std::endl;
  57.             getchar();
  58.         }
  59.         else if (std::string(argv[i]) == "-f")
  60.         {
  61.             if (file_path != nullptr)
  62.             {
  63.                 std::cerr << argv[i] << " overload!";
  64.                 return 1;
  65.             }
  66.  
  67.             if ((i + 1) > (argc - 1))
  68.             {
  69.                 std::cout << "error, no value found";
  70.                 getchar();
  71.                 return 1;
  72.             }
  73.  
  74.            
  75.             file_path = argv[i + 1];
  76.             parms.insert('f');
  77.             std::cout << "file = " << file_path << std::endl;
  78.             getchar();
  79.         }
  80.         else if (std::string(argv[i]) == "-b")
  81.         {
  82.             if (bytes != 0)
  83.             {
  84.                 std::cerr << argv[i] << " overload!";
  85.                 return 1;
  86.             }
  87.  
  88.             if ((i + 1) > (argc - 1))
  89.             {
  90.                 std::cout << "error, no value found";
  91.                 getchar();
  92.                 return 1;
  93.             }
  94.            
  95.             try {
  96.                 bytes = std::stoi(argv[i + 1]);//, &sz);
  97.             }
  98.             catch (std::invalid_argument)
  99.             {
  100.                 std::cerr << "invalid argument!";
  101.                 return 1;
  102.             }
  103.             catch (std::out_of_range)
  104.             {
  105.                 std::cerr << "Number too big!";
  106.                 return 1;
  107.             }
  108.  
  109.  
  110.  
  111.             parms.insert('b');
  112.             std::cout << "bytes = " << bytes << std::endl;
  113.             getchar();
  114.         }
  115.         else if (std::string(argv[i]) == "-p")
  116.         {
  117.             if (position != 0)
  118.             {
  119.                 std::cerr << argv[i] << " overload!";
  120.                 return 1;
  121.             }
  122.  
  123.             if ((i + 1) > (argc - 1))
  124.             {
  125.                 std::cout << "error, no value found";
  126.                 getchar();
  127.                 return 1;
  128.             }
  129.  
  130.             try {
  131.                 position = std::stoi(argv[i + 1]);//, &sz);
  132.             }
  133.             catch (std::invalid_argument)
  134.             {
  135.                 std::cerr << "invalid argument!";
  136.                 return 1;
  137.             }
  138.             catch (std::out_of_range)
  139.             {
  140.                 std::cout << "Number too big!";
  141.                 return 1;
  142.             }
  143.            
  144.             parms.insert('p');
  145.             std::cout << "position = " << position << std::endl;
  146.             getchar();
  147.         }
  148.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement