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;
Das Argument von n wird zum Integerwert 2 umgewandelt, sollte 15 sein. Was ist falsch, oder wie sollte ich besser die Argumente parsen? GrüßeCode:#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;
}