2017-03-02 3 views
0

Ich habe bereits eine Speicherfunktion in meinem Werkzeug wie ein normales Werkzeug. Jetzt möchte ich Auto-Speichern-Funktion hinzufügen, die alle Operationen, die in dem Tool (wir haben diese Overlays genannt) gemacht, ohne Drücken von Strg + S, müssen automatisch vorgenommen werden. Ich muss eine auotsave Funktion schreiben und ich muss als Befehlszeilenargumente übergeben. Könnte mir jemand helfen? Mehr Details: Als ich mein Tool in Linux öffnen wollte, passierten wir meistens wie cd home/... bla bla ../ und ToolName. Ich muss die Autosave-Funktion als Befehlszeilenargumente verwenden. zB: Wenn ich das Argument als -s zum automatischen Speichern von Funktionen übergebe, wenn ich versuche, wie ....... zu übergeben. ToolName -s ......... es muss die Daten oder Operation automatisch speichern was in meinem Werkzeug durchgeführt wird.Automatisches Speichern der Operation durch Übergabe des Befehlszeilenarguments

int main(int argc, char* argv[]) 
{ 
    const std::string OPT = "-A"; 
    bool hasOption = false; 
    for (int i = 1; i < argc; ++i) { 
     if (OPT == argv[i]) { 
       hasOption = true; 
       break; 
     } 
    } 

    if (hasOption) { 

    } 
    return 0; 
} 
+0

@TobySpeight können Sie meine Code-Gliederung durchlaufen. –

Antwort

0

für Ihre wertvollen Antworten zu suchen Wenn es nur dieses Argument können Sie die folgenden Befehle verwenden:

int main(int argc, char *argv[]){ 
//... 
    // argv[0] contains the program name 
    if(argc >= 2 && strncmp(argv[1], "-s", 2){ 
    // start a thread that saves and sleeps in a loop 
    } 
//... 
return 0; 
} 

Ansonsten haben Sie eine Schleife durch die Argumente wie:

int i; 
for(i=1; i<argc; ++i){ 
    if(strncmp(argv[i], "-s", 2){ 
    // start a thread that saves and sleeps in a loop 
    } 
} 

Es sind auch Bibliotheken für das Parsen von Argumenten, aber ich bezweifle, dass Sie es für nur ein Argument brauchen.

+0

Danke für Ihre Antwort, es ist wirklich hilfreich. Aber ich bin betroffen, wie kann ich das Argument auf meine Speicherfunktion einstellen und es muss die Operation automatisch speichern @akg –

+0

Sie müssen einen Dateinamen dafür übergeben? Wenn ja, dann überprüfe, ob argc groß genug ist und passiere einfach 'argv [2] 'oder' argv [i + 1]' als Parameter. Ich nehme an, dass Sie einfach Ihre Speicherfunktion aufrufen können. Wenn Sie also einen Thread starten und ihn in Sekundenschnelle aufrufen, kann er funktionieren (natürlich sollte speichern sicher threadsicher sein). – akg

+0

Ich habe eine Speicherfunktion wie noraml Werkzeug (Strg + S). Ich habe ein Befehlszeilenargument, das als (-A) definiert ist. Ich muss dieses -A verwenden, um die Speicherfunktion automatisch auszuführen. Wenn ich den Befehl in Linux für zB: "ToolName -A" übergebe. Es muss die Operation gespeichert werden, die im Tool gemacht wurde. Was wäre der einfachste Weg, um automatisch zu speichern. @akg –

Verwandte Themen