命令列引數


在之前的文件中,main 函式在括號中總是空白的,若要使用命令列引數,可以在括號中如下填寫:

int main(int argc, char *argv[]) {
    ....
}

參數 argc 是一個整數,記錄命令列引數的個數,這個數目包括了程式名稱,例如下面的執行指令,argc 將記錄為 5:

prog hello.c -o  -c project.p

每個引數之間以空白作區隔,上面的命令包括程式名稱共會有五個引數,即 "prog""hello.c""-o""-c""project.p"

程式在執行後,argc 的值一定大於 1,因為至少包括了程式名稱,而 argv 分別儲存了引數的字串,例如上面的例子中,argv[0]"prog"argv[1]"hello.c"argv[2]"-o"argv[3]"-c"argv[4]"project.p"

在命令列引數的使用中,若輸入是一個包括空白的字串,就使用 "" 來包括,例如:

prog "This is a string!"

如此 argv[0] 是程式名稱 "prog",而 argv[1] 的字串就會是 "This is a string!"

底下的範例簡單地將命令列引數輸出:

#include <stdio.h>

int main(int argc, char *argv[]) {
    for(int i = 1; i < argc; i++) {
        printf("%s\n", argv[i]);
    }

    return 0;
}