000
24.11.2015, 01:49 Uhr
Yadgar
|
Hi(gh)!
Während ich das Höhenlinien-Interpolations-Projekt erst einmal etwas beiseite gelegt habe, arbeite ich meinem alten Vorhaben eines kommandozeilenbasierten Bildbearbeitungsprogramm weiter ("yip - Yadgar's Image Processor").
Ich begann mit drei ganz einfachen Kommandos, nämlich -help (zeigt LIste der verfügbaren Kommandos an), -i bzw. -invert (invertiert ein Bild) und c- bzw. -create. Letzteres erzeugt ein einfarbiges Bild mit als Parametern angegebenen Seitenlängen. Die Syntax ist
yip -c (oder -create) <width>x<height> rgb(<r>,<g>,<b>
Falls also der zweite Parameter von main() "-c" oder "-create" lautet und es dazu noch einen dritten Parameter gibt, der ein x enthält, soll ein Substring bis zum x extrahiert werden und dieser Substring dann in eine integer-Zahl umgewandelt werden. Da mir das Substring-Handling bei einfachen char-Arrays zu kompliziert erschien, wandelte ich den Parameter in ein String-Objekt um, also
string(argv[2])
womit stoi die passende Funktion zur Umwandlung nach Integer wäre. Unpraktisch dabei ist allerdings, dass ungeeignete Strings nicht abgefangen werden, sondern das Programm mit einer Systemfehlermeldung abbricht.
Was stellt C++ (gerne auch C++11) sonst an Möglichkeiten bereit, einen String in eine Zahl umzuwandeln? Oder muss ich mir selbst eine Funktion schreiben?
Bis bald im Khyberspace!
Yadgar -- Flagmaker - ein Programmier-Blog |