在写代码的时候难免会用到一些外部文件,比如读档存档,比如图片音乐的加载,那么这些路径应该如何去写,下面简单介绍一下.
这个代码用来测试文件是否打开成功,如果路径不正确就会显示打开失败.
#include<stdio.h>
int main()
{
FILE*fp = fopen("文件路径", "r"); //这里第一个参数就是文件路径
if (fp == NULL)
{
printf("打开失败");
getchar();
return 0;
}
else
{
printf("打开成功");
}
getchar();
fclose(fp);//关闭文件
return 0;
}
绝对路径
所谓的绝对路径就是从盘符开始的路径,选中一个文件右键属性,就是他的绝对路径
比如选中一个文件右键 找到属性
然后 就可以直接看到他的绝对路径
这里是D盘中文件夹的一个文件,现在在代码中做个测试
只有文件路径正确才可以打开成功,错误就会显示打开失败(可以自己试试)
/*
对于在上面的代码中,有同学应该已经注意到了,截图显示的的用 \ 这个分隔文件夹,但是到了代码中就使用了 \\ ,原因是C语言字符串中的\ 要用'\\'这个转义字符表示.
其实文件夹中的路径用/隔开也行,上面的代码可以改成
FILE*fp = fopen("D:/07_PROJECT/代码测试与总结/错误测试/123.txt", "r");
//两种写法没有任何区别
*/
tips: 在C语言代码中,路径隔开记得使用\ 或者/
相对路径
相对路径的理解,可以认为是程序和文件的相对位置,比如说程序和文件在同文件夹中,或者文件在程序的上级路径中,下面从最简单的开始练习下写法.
运行项目的时候,这个相对路径就是文件和项目代码相对的路径
-
同级目录 就是文件在项目文件夹下
像上面这种位置的文件相对路径就直接写文件名就行
123.txt
或者./123.txt
其中的
./
表示当前文件夹的意思
-
上级目录 指的是当前目录的上级文件夹
对于上级目录的文件,路径写法是../123.txt
其中的../
表示上级文件夹 -
子文件夹
如果文件在当前目录的文件夹中比如下图
123.txt
在当前目录的Debug
文件夹当中,前面用/
或者\\
表示文件夹下的内容就行,路径写法是Debug/123.txt
或者./Debug/123.txt
tips
- 可以自由结合上面的几种方式,比如上级文件夹就是
../
,子文件夹就是/
或者\\
来自由搭配.只要路径正确就能够顺利找到文件位置- 运行项目的时候 当前路径是项目文件夹,如果是直接点击exe文件,那么用exe所在文件夹作为当前目录.
两种方式的对比
- 绝对路径
绝对路径比较好写,但是路径必须一致才可以保证运行,因为你的程序一般是发给其他人用的,保存的位置未必和写的绝对路径一致(包括盘符),而这一点在实际上很难做到,所以一般不用绝对路径
- 相对路径
需要一段时间掌握,写完之后需要一点练习,是很常用的路径写法.只要保证放的位置相对一致就行了,比如直接放到一个文件夹里面等等.
有兴趣一起学习C/C++的小伙伴们记得加群: 871318929,会有许多的资源可以供大家学习分享,欢迎大家前来一起学习进步