c++ 工作路径介绍及获取

1)绝对路径:绝对路径是指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径。例如:C:\windows\system32\cmd.exe 
注意: 在不同系统的情况系 windows下是“\”,linux和unix下是“/” ,但在win中没有本质区别。linux和unix系统中绝对路径 以“/”为起始 例:/home/user1/abc.txt 
在windows中绝对路径用的更多的是“\”(也可以用“/”),网络路用的更多的是“/”。 
2)相对路径:是从当前路径开始的路径,假如当前路径为C:\windows要描述上述路径,只需输入system32\cmd.exe实际上,严格的相对路径写法应为.\system32\cmd.exe 
*在windows下,“./”或者“.\”当前路径表示当前目录,“../”或者“..\”(\有转义的意思,需要有两个\)表示当前路径表示的上一级目录 
在Linux下,“./” 表示当前路径表示的当前目录 “../”表示当前路径表示的上一级目录
例如:C:\windows\system32\cmd.exe 
假如当前路径为c:\program files要调用上述命令,则需要输入..\windows\system32\cmd.exe其中,..为父目录。当前路径如果为c:\program files\common files则需要输入….\windows\system32\cmd.exe另外,还有一种不包含盘符的特殊绝对路径,形如\windows\system32\cmd.exe无论当前路径是什么,会自动地从当前盘的根目录开始查找指定的程序。 
其中“..”为父目录,”..\”表示回到上一级目录,所以需要回到上一级目录进行查找。

要想获取当前目录

#include  <direct.h>
#include  <stdio.h>
    char   buffer[MAX_PATH]; 
    getcwd(buffer, MAX_PATH); 
    printf( "The   current   directory   is:   %s ",   buffer); 
//打印出E:/C++/cppTest/cppPrimerTest

获得exe当前目录:

#include <windows.h>
    char chpath[MAX_PATH];
    GetModuleFileName(NULL,(LPSTR)chpath,sizeof(chpath));
    std::cout<<chpath<<std::endl;
//打印出:E:/C++/cppTest/cppPrimerTest/Debug/cppTest.exe

猜你喜欢

转载自blog.csdn.net/qq_41598072/article/details/85114445