void DifferentThing(char *s)
{
printf("DifferentThing %s\n",s);
}
int main (int argc, char * const argv[])
{
if (argc > 2)
{
if (strcmp(argv[1], "function1") == 0)
printf("%s\n",argv[2]);
else if (strcmp(argv[1], "function2") == 0)
DifferentThing(argv[2]);
}
return 0;
}
更新:上面是不是真的C++,更像是C.這是更好的
#include <iostream>
#include <string>
void DifferentThing(const std::string &s)
{
std::cout << "DifferentThing " << s << std::endl;
}
int main (int argc, char * const argv[])
{
if (argc > 2)
{
std::string param1(argv[1]);
std::string param2(argv[2]);
if (param1 == "function1")
std::cout << param2 << std::endl;
else if (param1 == "function2")
DifferentThing(param2);
}
return 0;
}
將第二個參數設置爲字符串或文本文件可能不是一個好主意,它沒有標記來指示用戶需要哪個標記。如果用戶調用'mypg.exe function1 mystring',行爲是否真的會改變,取決於在當前目錄中是否有一個名爲mystring的文件? – sepp2k 2010-06-22 12:56:16
那麼,理想的應該是它既可以是一個字符串(所以它對這個文本做了些什麼)或者一個文件(.txt,在這種情況下,它打開文件並且使文本做一些事情) – legami 2010-06-22 13:05:07
如果用戶想要打開一個不以「.txt」結尾的文本文件?依靠文件擴展名通常是不好的做法。如果是我,我會讓它被稱爲「mypg.exe function1」,這是一個字符串「'或'mypg.exe function1 -f」這是一個文件名「' – sepp2k 2010-06-22 13:24:29