目录
一、文件的基本操作
1.打开文件
1.1 函数原型:
FILE *fopen(const char *filename,const char *mode);
参数1:文件路径
参数2:文件的打开方式
返回值:FILE*,即
文件指针,也就是物理内存上的这块空间的首地址。
1.2 文件的打开方式
r :只读,不可修改,文件必须存在,不存在fopen会执行失败
w :可读可写,删除写,即文件原本有内容, w 打开会把内容删除,重新写入,文件不存在时,会创建文件
a : 可读可写,接着写,即文件原本有内容, a 打开内容保留,继续写入,文件不存在时,会创建文件
r+ :可读可写,文件必须存在,不存在fopen会执行失败
w+ :同w
a+ :同a
rb、wb、ab :二进制模式
2.关闭文件
函数原型:
int fclose(FILE *stream);
参数:目标文件指针
3.读写操作
3.1 fwirte( ) 和 fread( )
二进制文件方式。fwirte( )是一次写入指定字节数, fread( )是一次读指定字节数。一般要保存的数据是比如数组,结构体等非字符型的复杂数据,可以采用这种方式。
3.1.1 fwirte( )
函数原型:
size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
参数1:要获取数据的地址
参数2:sizeof (type) ,即要写入内容的单字节数
参数3:strlen( ) ,即要进行写入size字节的元素个数
参数4:目标文件指针
返回值:实际写入的元素个数
3.1.2 fread( )
函数原型:
size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
参数1:用于接收数据的内存地址
参数2:sizeof (type) ,即要读出内容的单字节数
参数3:strlen( ) ,即要读出size字节的元素个数
参数4:目标文件指针
返回值:实际读取的元素个数
3.1.3 代码示例
// fwirte( )
#include <stdio.h>
struct class
{
char number[6];
char name[10];
char score[4];
};
int main()
{
struct class c[2] = {
{
"12345","张三"