Die Implementierung „app.exe -Befehl Datei“ Notation in C ++
-
21-08-2019 - |
Frage
Ich habe ein Projekt für meine Datenstrukturen Klasse, die eine Datei Kompressor ist, die Binary Trees und andere Sachen arbeitet mit. Wir sind verpflichtet, jede gegebene Datei zu „zip“ und „unzip“ durch die folgenden Anweisungen in der Befehlszeile:
Für Komprimierung: compressor.exe -Zip file.whatever
Für Dekomprimieren: compressor.exe -unzip file.zip
Wir programmieren in C ++ . Ich verwende die IDE Code :: Blocks und kompilieren GCC in Windows.
Meine Frage ist: Wie setzen Sie sogar, dass ?? !! Wie können Sie Ihre Exe erhalten diese Parameter in der Befehlszeile machen, und führen sie dann, wie Sie wollen
Auch etwas Besonderes im Sinne haben, wenn ich, dass die Umsetzung in Linux kompilieren will?
Danke für Ihre Hilfe
Lösung 3
Lo logré, ich GÖTZ es !!
Ich habe jetzt ein grundlegendes Verständnis darüber, wie die verwenden argc und argv [] Parameter auf der Seite main () Funktion (I < em> immer fragte sich, was sie für ... gut waren). Zum Beispiel, wenn ich in der Befehlszeile setzen:
compressor.exe -unzip file.zip
Dann:
- argc initialisiert in '3' (Anzahl der Argumente in Zeile)
- argv [0] == "compressor.exe" (Name des App.)
- argv [1] == "-unzip"
- argv [2] == "file.zip"
Greg (nicht 'Creg', sorry = P) und Bemrose, danke euch für eure Hilfe !! ^^
Andere Tipps
Sie möchten in Ihrem Programmiertext für die Unterschrift der main
Funktion suchen, Ihr Programm Einstiegspunkt. Das ist, wo Sie in der Lage sein werden in diesen Befehlszeilenparameter zu ziehen.
Ich will nicht mehr detailliert sein als das, weil dies offenbar ein wesentlicher Punkt des Auftrags ist, und wenn ich mich jemals mit Ihnen finde, würde ich erwarten, dass Sie diese Art von Sachen Figur der Lage sein, aus auf eigener Faust, wenn Sie haben einen entsprechenden Schub erhalten. :)
Viel Glück!
Wie ich mich erinnere, definiert die Single UNIX Specification / POSIX getopt in unistd.h das Parsen von Argumenten für Sie zu behandeln. Zwar ist dies eine C-Funktion ist, sollte es auch in C ++ arbeiten.
GNU GLIBC diese zusätzlich muss getopt_long ( in getopt.h) GNU erweitert --style zu unterstützen.