求救,这问题出在哪:error C2660: 'getopt' : function does not take 3 parameters

lcmhyj 2006-11-10 11:05:32
在调试程序时,总是出现这个错误D:\Program Files\Microsoft Visual Studio\MyProjects\2\prefixspan.cpp(182) : error C2660: 'getopt' : function does not take 3 parameters
但是我在源程序中已经包括了"getopt.h"这个头文件,在主函数中也是这样调用的:
int opt= getopt(argc, argv, "vsM:m:d:");
这问题是出在哪儿呀,求救!!!!



...全文
411 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
凌殿Y_ST 2006-11-10
  • 打赏
  • 举报
回复
int getopt(int argc, char** argv, char* optstr);
定义的是char*而非const char*;
因此不能直接赋const char*型数值"vsM:m:d:" 为第三个参数;
将 int opt= getopt(argc, argv, "vsM:m:d:");改成:
...
char tmp[]="vsM:m:d:";
int opt= getopt(argc, argv, tmp);
...
试试~ 应该可以了!
飞哥 2006-11-10
  • 打赏
  • 举报
回复
这个是通用版本,随便你什么
呵呵
飞哥 2006-11-10
  • 打赏
  • 举报
回复
http://switch.dl.sourceforge.net/sourceforge/freegetopt/freegetopt-0.11.tar.gz
lemon520 2006-11-10
  • 打赏
  • 举报
回复
是楼上的楼上的楼上的
lemon520 2006-11-10
  • 打赏
  • 举报
回复
楼上的对,这个函数在linux/unix下可以用
飞哥 2006-11-10
  • 打赏
  • 举报
回复
呵呵。。。。
down个就是了

我啃 2006-11-10
  • 打赏
  • 举报
回复
开来是调用了古董级别的库函数
hailongchang 2006-11-10
  • 打赏
  • 举报
回复
GETOPT是个posix函数,你的用法是对的,你加
#include<stdio.h>
#include<unistd.h>

试一下

MS已经不支持这个函数了
lcmhyj 2006-11-10
  • 打赏
  • 举报
回复
头文件里也是带了三个参数:int getopt(int argc, char** argv, char* optstr);
逸学堂 2006-11-10
  • 打赏
  • 举报
回复
错误问题就是
getopt : function does not take 3 parameters
函数getopt不接受3个参数,看看函数的声明吧
我啃 2006-11-10
  • 打赏
  • 举报
回复
回去看看自己定义的原型
我啃 2006-11-10
  • 打赏
  • 举报
回复
看看你的函数原型,肯定不是要求3个参数
myfriend023 2006-11-10
  • 打赏
  • 举报
回复
参数个数不对

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧