gpt4 book ai didi

c++ - 不知道如何使用 popt 库

转载 作者:行者123 更新时间:2023-11-30 17:53:32 26 4
gpt4 key购买 nike

全部:

感谢您的帮助。

我是 C 选项解析的新手,现在,我想要的是使用 popt 库来解析每个参数并将它们打印出来。

    #include <iostream>
#include <string>
#include <cstring>
#include <popt.h>

using namespace std;

int main(int argc, const char* argv[]){

char* dt1;
char* dt2;

struct poptOption {
const char * longName; /* may be NULL */
char shortName; /* may be ’\0’ */
int argInfo;
void * arg; /* depends on argInfo */
int val; /* 0 means don’t return, just update flag */
char * descrip; /* description for autohelp -- may be NULL */
char * argDescrip; /* argument description for autohelp */
};
struct poptOption optionsTable[]={
{"start",'s',POPT_ARG_STRING,dt1,'s',"The date format should like YYYY-MM-DD.",0},
{"end",'e',POPT_ARG_STRING,dt2,'e',"The date format should like YYYY-MM-DD.",0},
//~ POPT_AUTOHELP
//~ {NULL,0,0,NULL,0}
};

poptContext optCon;
optCon = poptGetContext (0, argc, argv, optionsTable, 0);

const char* portname = poptGetArg(optCon);
cout<<portname<<endl;
return 0;
}

当我编译它时,出现错误:

test.cpp: In function ‘int main(int, const char**)’
test.cpp:27: warning: deprecated conversion from string constant to ‘char*’
test.cpp:27: warning: deprecated conversion from string constant to ‘char*’
test.cpp:30: error: cannot convert ‘main(int, const char**)::poptOption*’ to ‘const poptOption*’ for argument ‘4’ to ‘poptContext_s* poptGetContext(const char*, int, const char**, const poptOption*, unsigned int)’

最佳答案

我认为您不应该在程序中定义 struct poptOption。该结构应该在 popt 包含文件中为您定义。尝试删除该结构定义。

注意,我认为您还需要取消注释此行:

    //~ {NULL,0,0,NULL,0}

关于c++ - 不知道如何使用 popt 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15529634/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com