Abend.
Ich bin PHP Entwickler, und habe mich bei einer kleinen Aufgabe gedacht, "das Skript kann ich doch in C++ schreiben".
Es lief überraschend gut, natürlich hab ich auch nur ein ganz einfaches Problem, für das ich nicht zb. mit Pointern arbeiten muss, ich aber doch ganz gern mit C++ die volle Power aus einem Programm hauen wollte.

Was ich nicht schaffe, ist das Argumente der Kommandozeile (Linux) parsen.

Aufruf:
./program -n 15

Ausgabe:
n:2-15;

Code:
#include <iostream>
#include <string>
#include <sstream>
using std::string;
 
  unsigned char		digitMiddle = '2';
  unsigned char		digitFill = '1';
  unsigned short	digitRepeat = 1;
  unsigned int		maxChecks = 100;
  bool			abortOnSuccess = true;

//...

int main(int argc, char* argv[]) {
  register unsigned int i; //steps

//parse args
  i = 1;
  while ((i < argc)) {
    register string sw = argv[i]; //ein Argument
    if (sw=="-n") {
      std::stringstream sstr(argv[i]+1);
      sstr >> numberInt;
      std::cout << "n:" << digitMiddle << "-" << argv[i+1] << ";";
    } else if (sw=="-f") {
       //...
    }
      i++;
  }
  //end of parse args
  

  return 0;
}
Das Argument von n wird zum Integerwert 2 umgewandelt, sollte 15 sein. Was ist falsch, oder wie sollte ich besser die Argumente parsen? Grüße