我目前正在尝试理解解析的基础并编写该代码。代码很简单。我只想写一个程序,能够用不同的表扬做出不同的工作。我使用linux,我通过bash表示开始代码。
该代码只用-n commmend打印“n打印”,用-t表示打印“t打印”。我得到“选项需要参数 - 't'”错误。如何处理?
我的第二个问题是“nt:”和“n:t:”之间的区别。当我尝试第二个时,我没有打印任何结果。
提前致谢。
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
int
main(int argc, char *argv[])
{
int opt;
opterr = 0;
while ((opt = getopt(argc, argv, "nt:")) != -1) {
switch (opt) {
case 'n':
printf("n is printed");
break;
case 't':
printf("t is printed");
break;
}
}
}
答案 0 :(得分:4)
当你在一个字符后加上':'时,该函数需要一个(或多个)参数,每个参数前面都有一个空格。
所以你必须输入:
yourprogram -t yourargument
要获得您的论证,您必须声明:
extern char * optarg;
将包含参数。
希望它可以帮到你,