精品熟女碰碰人人a久久,多姿,欧美欧美a v日韩中文字幕,日本福利片秋霞国产午夜,欧美成人禁片在线观看

C語言 命令行參數

c語言 命令行參數

執行程序時,可以從命令行傳值給 c 程序。這些值被稱為命令行參數,它們對程序很重要,特別是當您想從外部控制程序,而不是在代碼內對這些值進行硬編碼時,就顯得尤為重要了。

命令行參數是使用 main() 函數參數來處理的,其中,argc 是指傳入參數的個數,argv[] 是一個指針數組,指向傳遞給程序的每個參數。下面是一個簡單的實例,檢查命令行是否有提供參數,并根據參數執行相應的動作:

#include <stdio.h>

int main( int argc, char *argv[] )  
{
   if( argc == 2 )
   {
      printf("the argument supplied is %s\n", argv[1]);
   }
   else if( argc > 2 )
   {
      printf("too many arguments supplied.\n");
   }
   else
   {
      printf("one argument expected.\n");
   }
}

使用一個參數,編譯并執行上面的代碼,它會產生下列結果:

$./a.out testing
the argument supplied is testing

使用兩個參數,編譯并執行上面的代碼,它會產生下列結果:

$./a.out testing1 testing2
too many arguments supplied.

不傳任何參數,編譯并執行上面的代碼,它會產生下列結果:

$./a.out
one argument expected

應當指出的是,argv[0] 存儲程序的名稱,argv[1] 是一個指向第一個命令行參數的指針,*argv[n] 是最后一個參數。如果沒有提供任何參數,argc 將為 1,否則,如果傳遞了一個參數,argc 將被設置為 2。

多個命令行參數之間用空格分隔,但是如果參數本身帶有空格,那么傳遞參數的時候應把參數放置在雙引號 "" 或單引號 '' 內部。讓我們重新編寫上面的實例,有一個空間,那么你可以通過這樣的觀點,把它們放在雙引號或單引號""""。讓我們重新編寫上面的實例,向程序傳遞一個放置在雙引號內部的命令行參數:

#include <stdio.h>

int main( int argc, char *argv[] )  
{
   printf("program name %s\n", argv[0]);
 
   if( argc == 2 )
   {
      printf("the argument supplied is %s\n", argv[1]);
   }
   else if( argc > 2 )
   {
      printf("too many arguments supplied.\n");
   }
   else
   {
      printf("one argument expected.\n");
   }
}

使用一個用空格分隔的簡單參數,參數括在雙引號中,編譯并執行上面的代碼,它會產生下列結果:

$./a.out "testing1 testing2"

progranm name ./a.out
the argument supplied is testing1 testing2

main 的兩個參數的參數名如下:

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

并不一定這樣寫,只是約定俗成罷了。但是亦可以寫成下面這樣:

int main( int test_argc, char *test_argv[] )  

任意你喜歡的名字。

但是大部分人還是寫成開頭那樣的,如下:

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

下一節:c 標準庫 <assert.h>

c 簡介

相關文章