我想将二维数组和文件名的大小作为命令行参数发送给C.
int main(int argc,char *argv[])
我知道这适用于单个参数,但我如何获取两个参数?
答案 0 :(得分:2)
argc
告诉你参数的数量。argv
是一个指向c风格字符串的char指针数组。所以你可以通过以下方式打印所有参数:
int main(int argc, char *argv[])
{
int i;
for (i=0; i<argc; ++i)
{
printf("%s\n", argv[i]);
}
}
您可以使用atoi
将字符串的(初始部分)转换为整数。
所以你可以这样做:
int main(int argc,char *argv[])
{
char filename[100];
int size = 0;
int i;
if (argc < 3)
{
printf("Too few arguments\n");
return 0;
}
if (strlen(argv[1]) >= 100)
{
printf("File name too long\n");
return 0;
}
strcpy(filename, argv[1]);
size = atoi(argv[2]);
if (size <= 0)
{
printf("Invalid size\n");
return 0;
}
....
....
return 0;
}
请注意,除非您要以某种方式修改值,否则通常不需要将文件名参数复制到另一个变量。