亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從命令行將參數傳遞到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 關注
  • 821 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號