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