文件类型:
从编程角度我们把文件分为两大类,分别为文本文件,二进制文件
二进制文件:存储的是数据的补码,无法用文件文本打开,好处是读取文件就可以使用
文本文件:把数据以字符的形式存储到文件中,可以直接打开,检查是否正确,但读写都需要进行数据转换
打开文件:
FILE *fopen( const char *fname, const char *mode );
功能:打开、创建文件
path:文件的路径
mode:打开方式
"r" 以只读权限打开文件,如果不存在则打开失败
"r+" 在r的基础上增加写权限
"w " 以只写权限打开文件,如果文件不存在则新建,如果文件存在则清空
"w+" 在w的基础上增加读权限
"a" 以只写权限打开文件,如果文件不存在则新建,如果文件存在则不清空,新写入的数据会在末尾
"a+" 在a的基础上增加读权限
返回值:FILE结构指针,该结构中记录着被打开文件的相关数据,不需要关心它的成员,只需要知道它是操作文件的凭证,
如果文件打开失败返回NULL
注意:如果文件本身没有相关权限,则会打开失败。
ls -l filename查看权限
r 读 w 写 x执行
关闭文件:
int fclose( FILE *stream );
文本文件的读写:
int fprintf( FILE *stream, const char *format, ... );
功能:以文本格式写入数据
stream:要写入的文件,fopen的返回值
format:格式
...:要写入的变量
返回值:要写入的字节数
二进制文件读写:
int fwrite( const void *buffer, size_t size, size_t count, FILE *stream );
功能:把内存中的数据拷贝到文件中
ptr:要写入数据的内存首地址
size:数据的每个元素字节数
nmemb:元素的个数 (不知道字节数一般写:1)
stream:文件指针
返回值:成功写入的元素个数,正常情况下应该是nmemb参数
int fread( void *buffer, size_t size, size_t num, FILE *stream );
功能:从文件拷贝数据到内存
ptr:存储数据的内存首地址
size:每个元素的字节数
nmemb:要读取的元素个数
stream:文件指针
删除文件:
void remove( const TYPE &val );