如何解决使用 getopt optarg 出现 fopen 错误的问题
运行它不会打开我在选项 -w 中使用 optarg 解析的文件。
我用 ./programname -w filename.txt 运行
filename.txt 与 exe 文件等在同一目录下...
我在这里贴出一部分代码让你理解,谢谢!
附言抱歉我的英语不好!
while((opt = getopt(argc,argv,"lw")) != -1)
switch(opt) {
case 'l': {
//... do something ...
} break;
case 'w': {
int counter = 0;
FILE* ifp = fopen(optarg,"r");
CHECK_OPEN_FILE(ifp,optarg);
while(fgets(buffer,256,ifp) != NULL)
counter += wordscounter(buffer);
fprintf(stdout,"File has %d words.\n",counter);
fclose(ifp);
}break;
case '?': {
if(optopt == '-')
break;
fprintf(stderr,"ERROR: Option -%c unrecognized...\n",optopt);
} break;
}
在这部分代码中我有一个问题:
FILE* ifp = fopen(optarg,"r");
CHECK_OPEN_FILE(ifp,optarg);
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。