用C++写个小程序,由于环境很简单,不想调用系统API,通过以下方法实现:
//argv[0]是当前运行程序的全路径名
string filename(argv[0]);
//测试发现Windows下居然获取的路径分隔符居然有\也有/
size_t found = filename.find_last_of("\\");
size_t found2 = filename.find_last_of("/");
//得到最后一个分隔符
found = (found >= found2 ? found : found2);
//获取运行程序当前的目录
string cwd = filename.substr(0, found);
//上面的代码有一个问题,就是执行的时候必须是全路径,要不只有文件名,于是还有下面一种方法
char filepath[256];
getcwd(filepath, 256);