VS文件操作--fopen函数总结

fopen用法: fp = fopen(filename,“mode”)

mode参数 r, w, a, r+, w+, a+ 具体区别:
r : 只能读, 必须存在, 可在任意位置读取
w : 只能写, 可以不存在, 必会擦掉原有内容从头写
a : 只能写, 可以不存在, 必不能修改原有内容, 只能在结尾追加写, 文件指针无效
r+ : 可读可写, 必须存在, 可在任意位置读写, 读与写共用同一个指针
w+ : 可读可写, 可以不存在, 必会擦掉原有内容从头写
a+ : 可读可写, 可以不存在, 必不能修改原有内容, 只能在结尾追加写, 文件指针只对读有效 (写操作会将文件指针移动到文件尾)

r+ 和 w+ 的区别:
r+ 是可以直接写在文件上,读取和写入的光标都在文件开头。
w+ ,如果文件已经存在,将建立一个新文件覆盖原文件,并且支持读取。

a+ 和 r+的区别:
a+只能在文件最后补充,光标在结尾。
r+可以覆盖前面的内容,光标在开头

例子如下:

FILE   *iproj;	 /* Project File */
iproj = fopen("projectName.txt", "r");

fopen打开文件成功,返回文件指针(赋值给iproj),打开失败则返回NULL值;

【扩展】正斜杠和反斜杠
正斜杠,又称左斜杠,符号是" / “;反斜杠,也称右斜杠,符号是” \ "。

【文件路径】相对路径与绝对路径
1.绝对路径
使用fopen打开绝对路径下的文件,没有问题,值得注意的是路径中可以使用/也可以使用//,在vs2010中都能正确读取。

iproj = fopen("F:\\PIHM\\PIHM\\version 2.2\\PIHM_v2.2\\PIHM_v2.2\\projectName.txt", "r");

给出了从盘符开始的全部路径,这里需要注意的是“\”要用双斜线"\",采用“\”会提示警告⚠(“P”:不可识别的字符转义序列)。
【注意】对相对路径而言,路径表示中的“\”也要用双斜线"\",c++中\是一种转义字符,表示一个\,就像\n表示回车一样。
在这里插入图片描述

2.相对路径
vc工程默认访问的目录是工程目录,相对路径有以下多种形式,如:

pDummyFile = fopen("dummy.bmp", "rb"); 

bmp文件就在vc工程目录下,和dsw文件同属一个目录。

pDummyFile = fopen("..\\texture\\dummy.bmp", "rb"); 

表示bmp文件在工程目录的同级目录texture中,因此路径是先退出工程目录再进入texture目录访问到bmp文件。“…”表示退到当前目录的上一级目录(父目录)。

pDummyFile =fopen(".\\texture\\dummy.bmp", "rb"); 

表示bmp文件就在工程目录的子目录texture中,“.”表示当前默认目录,即vc工程目录,然后在进入其子目录texture访问到文件。
在这里插入图片描述
【另】fopen_s函数用法:
err = fopen_s(&fp,filename,“mode”)

errno_t err;
FILE   *fp;	/* Project File */
fp = fopen("projectName.txt", "r");
err = fopen_s(&fp, "projectName.txt", "mode");

打开文件成功返回0,失败返回非0。
fopen_s函数比fopen函数多了溢出检测,更安全一些。
上例用fopen_s函数实现如下:
在这里插入图片描述

  • 5
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WW、forever

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值