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üße
--
Ich widerspreche der Nutzung oder Übermittlung meiner Daten für Werbezwecke oder für die Markt- und Meinungsforschung (§ 28 Absatz 3 und 4 Bundesdatenschutzgesetz).
Mhmm, funktioniert noch nicht ganz. -f wird als invalide Option geführt:
Aufruf:
./primenumber -f 15
./primenumber: invalid option -- 'f'
Unknown option `-f'.
--
Ich widerspreche der Nutzung oder Übermittlung meiner Daten für Werbezwecke oder für die Markt- und Meinungsforschung (§ 28 Absatz 3 und 4 Bundesdatenschutzgesetz).
Okay. Allerdings werden die Werte nicht richtig umgewandelt!
Ich krieg sie nicht zum richtigen Integer. Wenn ich nicht caste, kann ich nicht kompiilieren, "Ungültige Umwandlung von char* in short unsigned integer".
Was ist zu tun?
Edit:
Hier sind die Variablendefinitionen:Mit atoi kann ich nicht in Char umwandeln.
--
Ich widerspreche der Nutzung oder Übermittlung meiner Daten für Werbezwecke oder für die Markt- und Meinungsforschung (§ 28 Absatz 3 und 4 Bundesdatenschutzgesetz).
Geändert von Bluescreen (07.02.2010 um 20:55 Uhr)
Grund: Neue Hinweise
Char* in eine Zahl:
strtol + schranken checken. Siehe limits.h
...
Okay, ich verwende jetzt auch einen short int.
Zitat
atoi und co sind Boese, und sollten nicht verwendet werden.
...
Okay... Weil unzuverlässig?
Zitat
In Cpp solltest du eher String nehmen, anstatt c-strings.
...
Okay, den Unterschied erkenne ich an was?
Zitat
Da ist + fuer int und co ueberladen, und du kannst einfach addieren.
...
Mhmm... Kannst du das nochmal anders ausdrücken für mich?
--
Ich widerspreche der Nutzung oder Übermittlung meiner Daten für Werbezwecke oder für die Markt- und Meinungsforschung (§ 28 Absatz 3 und 4 Bundesdatenschutzgesetz).
Mhmm... Kannst du das nochmal anders ausdrücken für mich?
...
Bitte versteh' mich jetzt nicht falsch, allerdings ist es eher anzuraten erst eine Sprache grundlegend aus Manuals zu lernen, als /alles/ einzeln zu erfragen.
Schau dir mal an was man mit Cpp so machen kann, und lerne die Datentypen kennen.
Danach koennen wir gerne weiter reden. Es macht aber keinen Sinn, wenn du wirklich alles den Anderen aus der Nase ziehen musst. Wie es scheint, ist es naemlich nicht nur das cmd-parsen, was dir Probleme bereitet.
--
"When I was in college, there were certain words you couldn't say in front of a girl," "Now you can say them, but you can't say 'girl." - Tom Lehrer
Hey, ich will mich ja morgen nicht C++ Entwickler nennen.
Ich will nur die geballte Kraft der Rechenleistung eines Computers für diese Aufgabe nutzen. Der Rest des Programms ist kein Problem, scho ferdig. Nur das Argumente parsen wär g*** gewesen.
Es ist nur ein Ausflug (zu C++).
--
Ich widerspreche der Nutzung oder Übermittlung meiner Daten für Werbezwecke oder für die Markt- und Meinungsforschung (§ 28 Absatz 3 und 4 Bundesdatenschutzgesetz).
Geändert von Bluescreen (09.02.2010 um 20:56 Uhr)
Grund: Verdeutlichung