通过传递命令行参数自动保存操作

时间:2017-03-02 09:42:04

标签: c++ qt-creator c++14

我的工具中已经有像普通工具一样的保存功能。现在我想添加自动保存功能,它必须保存工具中的所有操作(我们称之为覆盖)而不按ctrl + S,必须自动完成。我需要写一个auotsave函数,我必须作为命令行参数传递。有人可以帮助我。更多细节:当我在Linux中打开我的工具的权利时,我们过去常常传递像cd home / ... bla bla ../和ToolName。我需要使用自动保存功能作为命令行参数。例如:当我尝试传递类似........ ToolName -s .........时,我将参数传递为-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;
 }

1 个答案:

答案 0 :(得分:0)

如果只有这个参数,您可以使用以下内容:

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

否则你必须循环遍历参数:

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

还有用于参数解析的库,但我怀疑你只需要一个参数。