参数类型在C程序中有所区别

Jat*_*rya 0 c argv command-line-arguments argc

我有一个主要功能,

int main (int argc, char **argv)
{}
Run Code Online (Sandbox Code Playgroud)

我应该传递两个不同的命令行参数:

argv[1]=IP ADDRESS type
argv[2]=INTEGER type
Run Code Online (Sandbox Code Playgroud)

例如,./a.out IP-ADDRESS INTEGER.我用其他一些脚本调用这个二进制文件.

问题是虽然argv[1]不可用,但它的行为与INTEGER价值一样argv[1].

我怎样才能检查一下,如果argv是类型INT不进入argv[1]或只IP-ADDRESS允许类型argv[1]

小智 5

传递给main函数的char**argv变量不仅仅是一个" arguments "数组,它是一个char*数组,只包含你在shell中输入的以null结尾的字符串.

作为一个例子,调用你的程序./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中的字符串,以便按照你想要的方式处理它们.