int main(int argc, char** argv)
這是對main函式的變形。
一般的main函式的格式為
int main()
這樣的程式假設編譯後產生的可執行檔案是a.exe,那麼執行的時候我們在命令列輸入
a.exe
回車後程序就運行了。
但如果我們輸入
a.exe -p 192.168.1.1
回車後程序也只是照常執行,在程式中執行時根本不知道我們在a.exe後面帶了兩個引數-p和192.168.1.1。
這種格式的main函式就是來解決這個問題的。 這種程式編譯後的可執行檔案在執行時,程式中可以透過變數argc知道命令列上的引數個數(包括程式名和後面帶的引數),比如輸入
回車後程序中變數argc的值是3,表示命令列上有程式名和2個附帶引數。
如果我們想要知道程式名和後面的附帶引數是什麼字串,我們就可以透過
argv[0]訪問到程式名,argv[1]、argv[1]訪問到後面的附帶引數"-p"和"192.168.1.1"
#include <iostream>
using namespace std;
{
cout << "argc=" << argc << endl;
for(int i=0; i<argc; i++)
cout << "argv[" << i << "]=" << argv[i] << endl;
return 0;
}
int main(int argc, char** argv)
這是對main函式的變形。
一般的main函式的格式為
int main()
這樣的程式假設編譯後產生的可執行檔案是a.exe,那麼執行的時候我們在命令列輸入
a.exe
回車後程序就運行了。
但如果我們輸入
a.exe -p 192.168.1.1
回車後程序也只是照常執行,在程式中執行時根本不知道我們在a.exe後面帶了兩個引數-p和192.168.1.1。
int main(int argc, char** argv)
這種格式的main函式就是來解決這個問題的。 這種程式編譯後的可執行檔案在執行時,程式中可以透過變數argc知道命令列上的引數個數(包括程式名和後面帶的引數),比如輸入
a.exe -p 192.168.1.1
回車後程序中變數argc的值是3,表示命令列上有程式名和2個附帶引數。
如果我們想要知道程式名和後面的附帶引數是什麼字串,我們就可以透過
argv[0]訪問到程式名,argv[1]、argv[1]訪問到後面的附帶引數"-p"和"192.168.1.1"
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
cout << "argc=" << argc << endl;
for(int i=0; i<argc; i++)
cout << "argv[" << i << "]=" << argv[i] << endl;
return 0;
}