全部:
感谢帮助。
我是 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:在函数 'int main(int, const char**)'<br> test.cpp:27:警告:不推荐将字符串常量转换为 'char*'<br> test.cpp:27:警告:不推荐将字符串常量转换为 'char*'<br> test.cpp:30: 错误:无法将参数 '4' 的 'main(int, const char**)::poptOption*' 转换为 'const poptOption*' 'poptContext_s* poptGetContext(const char*, int, const char**, const poptOption*, unsigned int)'</p>