整数和文件名作为C中的两个命令行参数

时间:2017-02-18 07:33:46

标签: c

我想将二维数组和文件名的大小作为命令行参数发送给C.

int main(int argc,char *argv[])

我知道这适用于单个参数,但我如何获取两个参数?

1 个答案:

答案 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;
}

请注意,除非您要以某种方式修改值,否则通常不需要将文件名参数复制到另一个变量。