我有一个主要功能,
int main (int argc, char **argv)
{}
我应该传递两个不同的命令行参数:
argv[1]=IP ADDRESS type
argv[2]=INTEGER type
例如,./a.out IP-ADDRESS INTEGER
。我用其他一些脚本调用这个二进制文件。
问题是当 argv[1]
不可用时,它的行为类似于 INTEGER
值作为 argv[1]
。
如果 argv
是 INT
类型,我如何检查是否不进入 argv[1]
或仅IP-ADDRESS
类型是否允许在 argv[1]
中?
最佳答案
传递给 main 函数的 char **argv 变量不仅仅是一个“arguments”数组,它是一个 char* 数组,只包含您在外壳。
例如,使用 ./a.out 127.0.0.1 12
调用您的程序将使 argv 如下所示:
argv[0] = "./a.out\0"
argv[1] = "127.0.0.1\0"
argv[2] = "12\0"
argv[3] = NULL
您需要编写一些代码来转换和存储 argv 中的字符串,以便按照您想要的方式处理它们。
关于c - C程序中的参数类型区分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14215911/