我通读了一些关于相对路径的主题,但我还是弄错了。我希望某人可以帮助我:)。我使用的是 Visual Studio 2013,Windows 7
我得到以下目录:
这是我的 .exe 文件 D:\uni\c++\ex5\msvc2013\ex5\Debug
这是我要读取的文件 D:\uni\c++\ex5\res\thehead.raw
打开文件的代码:
FILE* f;
f = fopen("..\\..\\..\\res\\thehead.raw", "rb");
if (f == NULL)
printf("FAIL!!");
Run Code Online (Sandbox Code Playgroud)
因为我需要使用相对路径,所以我想通如下:..\ 到达父目录。
所以“..\..\..\”应该让我进入文件夹“D:\uni\c++\ex5\”。
\res 应该打开 res 文件夹。
不用说它失败了,我不知道为什么。任何帮助,将不胜感激。
相对路径是相对于当前工作目录的,而不是可执行文件的路径。当前工作目录是您从中启动程序的目录。
要将路径视为相对于可执行文件的位置,最简单的可移植选项是将可执行文件访问为argv[0],提取目录并chdir()进入其中。请注意,这仅在程序本身以完整路径名启动时才有效。
| 归档时间: |
|
| 查看次数: |
25594 次 |
| 最近记录: |