C/C++中命令行參數的原理

很早以前的dos應用程序中,我們經常會用命令行參數執行應用程序例如: copy c:\1.txt d:\ 在c/c++中,命令行參數的傳遞是利用main進行形參傳遞實現的

前面的教程中我們對面都進行了void main()或者是void main(void)的定義,這表示main不返回任何類型,和main不帶有任何參數,但在缺剩狀態下mian()這樣形式下,形式參數一直是存在在棧空間內的只是隱藏了起來。 爲了實現命令行參數我們將使用main(int argc,char* argv[])這樣的形式進行定義argc和argv可以換成你自己喜歡的名稱,不一定要用argv,argc這些形式只是習慣而已,char* argv[]我們前面已經講述過,這就是一個指向指針數組,argv就是一個指針數組名,argv不是常量指針,而是具備變量特性的變量指針,它是可以移動的,由此我們可以改寫成char* *argv也是正確的,int argc這個定義返回的將是參數的個數所以標記爲整形(int)。 #include <iostream>

#include <string>

using namespace std;

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

{

int i=0;

while(i<argc)

{

cout<<*argv++<<endl;//這裏改寫成cout<<argv[i]<<endl;也是正確的

i++;

}

cin.get();

} 在命令行參數的提交中,系統會自動給指針數組後加上一個NULL,所以代碼可以寫成如下簡單形式,簡化代碼提高效率。#include <iostream>

#include <string>

using namespace std;

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

{

while(*argv!=NULL)//這裏寫成while(*argv)也是正確的!

{

cout<<*argv++<<endl;

}

cin.get();

} 最後我們說一下完整的命令行參數的原形:void main(int argc,char* argv[],char* env[])

env用的很少,通常是用做事件的返回,這裏就不討論了,具體的可以查詢書籍。

void main(int argc)省略其它參數的定義也是可以的,這樣運行時候就直接返回參數個數學,而不返回其它。

運行命令行參數帶有char* argv[]的時候,假如輸入參數帶有空格式,應該用雙引號闊起來。

例如 test4.exe "hello world!" ha ha

C/C++中命令行參數的原理
更多內容請看C/C++技術專題 linux命令簡介專題,或

 
編程導學之C/C++中命令行參數的原理
  早以前的dos應用程序中,我們經常會用命令行參數執行應用程序例如:          copy c:\1.txt d:  在c/c++中,命令行參數的傳遞是利用main進行形參傳遞實現的  前面的教程中我們對面都進行了void m...查看完整版>>編程導學之C/C++中命令行參數的原理
 
小S的有關命令中的原始參數
經常有小S迷進入小S的命令參數模式後不小心把某些能調的參數修改了後忘記了原始參數調不回去,下面將有關命令的原始參數公布如下,主要是測試模式下的(硬件2.9,軟件G2,其中第一位是默認值,黑豆的那個測試模式下的...查看完整版>>小S的有關命令中的原始參數
 
Outlook 2003命令行參數開關詳解
啓動 Microsoft Outlook 的命令是 Outlook.exe。命令行參數開關是正斜杠後跟開關名和開關具有的任何參數。開關的用法查找 Microsoft Outlook 可執行文件 Outlook.exe 並記下它的路徑。例如,路徑可能是 C:\Program F...查看完整版>>Outlook 2003命令行參數開關詳解
 
Ubuntu Linux系統下Apt-get命令參數詳解
整理了Ubuntu Linux操作系統下apt-get命令的詳細說明,分享給大家。 常用的APT命令參數: apt-cache search package 搜索包 apt-cache show package 獲取包的相關信息,如說明、大小、版本等 sudo apt-get install pa...查看完整版>>Ubuntu Linux系統下Apt-get命令參數詳解
 
命令行小技巧 使用大括號擴展參數的方法
這樣的情況:$ cp /etc/apt/sources.list /etc/apt/sources.list.bak 備份一個文件,重命名一個文件,或是創建一個鏈接,都要進行類似的操作。這裏面有個問題,明明 /etc/apt/sources 這幾個字都是一樣的,爲什麽要打...查看完整版>>命令行小技巧 使用大括號擴展參數的方法