首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

getopt参数没被读取,该怎么解决

2013-04-09 
getopt参数没被读取代码如下,-i参数后的内容为什么没有被读取啊。typedef struct{char filename[100]//fil

getopt参数没被读取
代码如下,-i参数后的内容为什么没有被读取啊。



typedef struct  
{
char filename[100];//filename里读取数据库字符串
char province_code[30];
char city_code[30];
char acct_cycle[6];
char rule_id[20];
}stru_args;

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "mysql.h" 
#include <unistd.h>

#define COMMIT_TMES 500
char str_opt[20] = "f:p:c:a:i:";
stru_args args; //参数
int main(int argc, char **argv) 
{

//char szSql[160];   //存放查询sql语句字符串
//profile_info db_connect;

memset(&args,'\0',sizeof(args));

//参数获取
int result;
while( (result = getopt(argc, argv, str_opt)) != -1 )
{
switch(result)
{
case 'f':
strcpy(args.filename,optarg);
break;
case 'p':
strcpy(args.province_code,optarg);
break;
case 'c':
strcpy(args.city_code,optarg);
break;
case 'a':
strcpy(args.acct_cycle,optarg);
break;
case 'i':
strcpy(args.rule_id,optarg);
break;
default:
break;
}

}
puts(args.acct_cycle);
        puts(args.rule_id);
//printf("rule_id:%s\n",args.rule_id);
//解析配置文件信息
//parse_profile(args.filename,&db_connect);

//printf("host:%s\n",db_connect.host);
//printf("host:%s\n",db_connect.usr);
//printf("host:%s\n",db_connect.password);
//printf("host:%s\n",db_connect.db_name);
return 0; 
}


-i后的参数没被解析出来。。什么原因, c
[解决办法]
没有问题啊,i:说明i这个选项必须带有参数,所以你可以这样输入:
./a.out -ituringo
这样turingo就是-i选项的参数,将会打印turingo后结束。

热点排行