2017-03-02 39 views
0

我的工具中已經有一個保存功能,就像普通工具一樣。現在我想添加自動保存功能,它必須保存工具中所做的所有操作(我們稱之爲疊加層),而不按ctrl + S,必須自動完成。我需要編寫一個auotsave函數,並且必須作爲命令行參數傳遞。有人能幫助我嗎?更多細節:當我正確地在Linux中打開我的工具時,大多數情況下我們都會像cd home/... bla bla ../和ToolName一樣傳遞。我需要使用自動保存功能作爲命令行參數。例如:當我通過參數爲-s自動保存功能,當我嘗試通過像........ ToolName -s .........它必須自動保存數據或操作這是在我的工具中執行的。尋找你的有價值的答案通過傳遞命令行參數自動保存操作

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你可以通過我的代碼大綱。 –

回答

0

如果只有這樣的說法,你可以使用以下命令:

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

有:

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; 
} 

否則你將喜歡的參數必須循環也是參數解析庫,但我懷疑你只需要一個參數。

+0

感謝您的回答,它真的很有幫助。但是我感到驚訝,我該如何將參數設置爲我的保存功能,並且必須自動保存操作@akg –

+0

您需要爲它傳遞一個文件名?如果是,那麼檢查argc是否足夠大,只需傳遞'argv [2]'或'argv [i + 1]'作爲參數。我假設你可以簡單地調用你的保存函數,所以如果你啓動一個線程,並在n秒內調用它,它可以工作(顯然保存應該是線程安全的)。 – akg

+0

我有一個保存功能,如諾拉姆工具(Ctrl + S)。我有一個定義爲(-A)的命令行參數。我必須使用這個-A自動執行保存功能。如果我在Linux中傳遞命令,例如:「ToolName -A」。它必須保存在工具中進行的操作。什麼是執行自動保存最簡單的方法。 @akg –