C語言命令行參數(shù)的使用詳解
之前曾經(jīng)使用過很多次c語言的命令行參數(shù)了,但是總是每次使用的時候都不太確定,需要重新查資料,這次來個總結(jié)。c語言的命令行參數(shù)非常簡單,只需要一個簡單的例子就可以說明:
#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函數(shù)傳遞兩個參數(shù),argc和argv。argc是int類型的,它表示的是命令行參數(shù)的個數(shù)。不許要用戶傳遞,它會根據(jù)用戶從命令行輸入的參數(shù)個數(shù),自動確定。argv是char**類型的,它的作用是存儲用戶從命令行傳遞進來的參數(shù)。它的第一個成員是用戶運行的程序名字。
對于上面的例子,我們將其保存為test.c,用gcc編譯生成目標文件為test,測試如下:
(1)我們值在命令行下直接運行程序,沒有傳遞其它任何參數(shù):
./test
運行結(jié)果如下:

第一個輸出的是argc,因為我們只輸入了./test,所以argc為1,即只有一個命令行參數(shù)。后面輸出的第一個命令行參數(shù)也是./test。接著程序就出錯了,因為后面已經(jīng)沒有第二個和第三個參數(shù)了,在寫實際的應(yīng)用時,應(yīng)注意對這一部分進行容錯處理。
(2)我們在命令行下輸入:
./test hello world

可以看到argc為3,第一個參數(shù)為./test,第二個參數(shù)為hello,第三個參數(shù)為world。
(3)我們繼續(xù)輸入:
./test hello world hello world

可以看到這時,argc變?yōu)?,argv指數(shù)出了前面三個參數(shù),當然還可以把后面的兩個參數(shù)也進行輸出。
如果命令行中傳遞的一個參數(shù)包括空格,就需要用用“ ”將參數(shù)擴起來例如
./test "hello world" "hello world"

我們將hello world整體當作一個參數(shù)傳遞,就需要使用“hello world”。
需要注意的是argv的類型可以是char ** argv,char argv[ ][ ],char* argv[ ]。
到此這篇關(guān)于C語言命令行參數(shù)的使用詳解的文章就介紹到這了,更多相關(guān)C語言命令行參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c++中string類型和int類型相互轉(zhuǎn)換的幾種常用方法
我們在編寫程序時,經(jīng)常涉及到int與string之間的類型轉(zhuǎn)換,本文主要介紹了c++中string類型和int類型相互轉(zhuǎn)換的幾種常用方法,具有一定的參考價值,感興趣的可以了解一下2023-08-08
有關(guān)C++繼承與友元、繼承與類型轉(zhuǎn)換詳解
下面小編就為大家?guī)硪黄嘘P(guān)C++繼承與友元、繼承與類型轉(zhuǎn)換詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
C語言數(shù)據(jù)結(jié)構(gòu)之擴展字符詳解
掌握C語言數(shù)據(jù)結(jié)構(gòu)的關(guān)鍵在于理解其核心概念,擴展字符作為其中的重要一環(huán),對于編程人員來說至關(guān)重要,本指南將為您深入剖析擴展字符的相關(guān)知識,帶您輕松掌握C語言數(shù)據(jù)結(jié)構(gòu),讓我們一起探索這個令人著迷的領(lǐng)域吧!2024-03-03
數(shù)據(jù)結(jié)構(gòu)之AVL樹詳解
這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)之AVL樹詳解,本文非常細致的講解了AVL樹的基礎(chǔ)知識、AVL樹的旋轉(zhuǎn)操作、AVL數(shù)的插入和刪除操作等,需要的朋友可以參考下2014-08-08

