1. 程式人生 > >C程序獲取命令行參數

C程序獲取命令行參數

you 所在 tdi 雙引號 argc 指針 多個 空格 界面

命令行參數

命令行界面中,可執行文件可以在鍵入命令的同一行中獲取參數用於具體的執行命令。無論是Python、Java還是C等等,這些語言都能夠獲取命令行參數(Command-line argument,與命令同一行中的附加項)。
C編寫的可執行文件的程序入口函數是main函數,因此C程序真正讀取命令行參數的就是main函數。
例:

#include <stdio.h>

/*
 * test.c 編譯後產生可執行文件test.exe或test.out,程序來源於C Primer Plus第十一章
 */
int main(int argc,char *argv[]) {
    int count;
    printf("The command line has %d arguments :\n",argc-1);
    for (count = 1; count < argc; ++count) {
        printf("%d: %s\n",count,argv[count]);
    }

    return 0;
}

我們在test.exe所在文件夾打開命令行窗口,鍵入test I love you,會輸出:

The command line has 3 arguments:
1: I
2: love
3: you

C標準規定main函數作為程序入口,可以沒有參數,也可以有兩個參數。兩種參數的情況下,第一個參數argc是命令行中的字符串個數,字符串的分隔按空格來判斷,上例中總共輸入了4個字符串,分別是 test, I, love, you。第二個參數argv是一個指向這些字符串的指針數組。命令行界面中輸入的所有字符串被存儲在這個數組中,可以用for循環遍歷。第一個元素當然是命令的名稱。當然,對於接受參數的main

函數也可以用另一種聲明:
inr main(int argc, int **argv)argv是一個指向字符的指針的指針,本質上還是指向包含多個字符串的數組。
命令行界面允許使用雙引號把多個單詞識別成一個參數:
test "I love you."
這其中I love you.被認為是一個整體的參數。

C程序獲取命令行參數