全て:
手伝ってくれてありがとう。
私は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>