为了账号安全,请及时绑定邮箱和手机立即绑定

从命令行将参数传递到C程序

从命令行将参数传递到C程序

海绵宝宝撒 2019-10-09 17:02:57
因此,我在Linux中,并且希望有一个程序在从命令行执行时接受参数。例如,./myprogram 42 -b -s因此,程序会将数字42存储为int类型,并根据代码得到的-b或-s参数执行代码的某些部分。
查看完整描述

3 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

您可以使用getopt。


 #include <ctype.h>

 #include <stdio.h>

 #include <stdlib.h>

 #include <unistd.h>


 int

 main (int argc, char **argv)

 {

   int bflag = 0;

   int sflag = 0;

   int index;

   int c;


   opterr = 0;


   while ((c = getopt (argc, argv, "bs")) != -1)

     switch (c)

       {

       case 'b':

         bflag = 1;

         break;

       case 's':

         sflag = 1;

         break;

       case '?':

         if (isprint (optopt))

           fprintf (stderr, "Unknown option `-%c'.\n", optopt);

         else

           fprintf (stderr,

                    "Unknown option character `\\x%x'.\n",

                    optopt);

         return 1;

       default:

         abort ();

       }


   printf ("bflag = %d, sflag = %d\n", bflag, sflag);


   for (index = optind; index < argc; index++)

     printf ("Non-option argument %s\n", argv[index]);

   return 0;

 }


查看完整回答
反对 回复 2019-10-09
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

在C语言中,这是通过传递给main()函数的参数来完成的:


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

{

    int i = 0;

    for (i = 0; i < argc; i++) {

        printf("argv[%d] = %s\n", i, argv[i]);

    }

    return 0;

}

可以在网上找到更多信息,例如主要文章的论点。


查看完整回答
反对 回复 2019-10-09
  • 3 回答
  • 0 关注
  • 727 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信