对于文件操作,以前我主要接触的是Linux下的一套,而到了C++学习了一下,也发现了一些异同点
首先FILE 类需要头文件#include <stdio.h>
对于打开文件操作,Linux下使用的是fopen函数,而在VS2010使用这个函数便会报警告
error C4996: ‘fopen‘: This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\stdio.h(211)
VS自己就建议你去使用fopen_s
erron_t ret = fopen_s(&FILE*,"FILENAME","打开方式");
打开成功返回0,失败返回非零值。
值得一提的是:
文件目录在VS下需要用\\这点不等同于Linux下的\来区分文件级别
有个小点容易遗忘那就是,文件打开后,文件指针的位置与打开方式是有关的,具体关系如下:
/***************************/
文件打开方式 文件指针位置
r(读文件) 文件头
w(写文件) 文件头
a(a+)追加内容 文件尾
/***************************/
在用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个
求文件长度的话,可以通过rewind()函数将文件指针偏移到文件头,再通过fseek(FILE*, 0L, SEEK_END);
读写文件的方式
有fread fwrite fputs fgets等函数,通过这些与feof的搭配我们可以实现读写的详细操作,具体见函数原型。
在我们操作完后记得关闭文件句柄fclose(FILE*);