C語言命令行參數的使用詳解

     之前曾經使用過很多次c語言的命令行參數瞭,但是總是每次使用的時候都不太確定,需要重新查資料,這次來個總結。c語言的命令行參數非常簡單,隻需要一個簡單的例子就可以說明:

#include <stdio.h>
void main(int argc,char** argv)
{
        printf("%d\n",argc);
        printf("%s\n",argv[0]);
        printf("%s\n",argv[1]);
        printf("%s\n",argv[2]);
}

在上面的例子中,我們給main函數傳遞兩個參數,argc和argv。argc是int類型的,它表示的是命令行參數的個數。不許要用戶傳遞,它會根據用戶從命令行輸入的參數個數,自動確定。argv是char**類型的,它的作用是存儲用戶從命令行傳遞進來的參數。它的第一個成員是用戶運行的程序名字。

     對於上面的例子,我們將其保存為test.c,用gcc編譯生成目標文件為test,測試如下:

     (1)我們值在命令行下直接運行程序,沒有傳遞其它任何參數:

./test

      運行結果如下:

     第一個輸出的是argc,因為我們隻輸入瞭./test,所以argc為1,即隻有一個命令行參數。後面輸出的第一個命令行參數也是./test。接著程序就出錯瞭,因為後面已經沒有第二個和第三個參數瞭,在寫實際的應用時,應註意對這一部分進行容錯處理。

     (2)我們在命令行下輸入:

./test hello world

     可以看到argc為3,第一個參數為./test,第二個參數為hello,第三個參數為world。

     (3)我們繼續輸入:

./test hello world hello world

     可以看到這時,argc變為5,argv指數出瞭前面三個參數,當然還可以把後面的兩個參數也進行輸出。

     如果命令行中傳遞的一個參數包括空格,就需要用用“ ”將參數擴起來例如

./test "hello world" "hello world"

     我們將hello world整體當作一個參數傳遞,就需要使用“hello  world”。

     需要註意的是argv的類型可以是char ** argv,char argv[ ][ ],char* argv[ ]。

到此這篇關於C語言命令行參數的使用詳解的文章就介紹到這瞭,更多相關C語言命令行參數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: