0
点赞
收藏
分享

微信扫一扫

C语言基础学习(19)文件操作

原理:在物理内存中开辟一块空间,将磁盘中的文件复制进来进行操作

FILE *fopen(const char *falename,const char *mode);//第一个参数是文件路径,第二个参数是打开方式
FILE *pFile = fopen("G:\\c语言基础学习\\c.txt","r");//使用函数打开文件,并保存在pFile中

打开方式:

"r"("rt"):只读形式,文件必须存在

"w"("wt"):擦除写,当文件不存在时会创建文件

"a"("at"):接着写,在文件结尾继续写入,当文件不存在时会创建文件

"r+":可读可写,但文件必须存在

"w+":同"w"

"a+":同"a"

二级制模式(用二进制打开)

"rb":只读形式,文件必须存在

"wb":擦除写,当文件不存在时会创建文件

"ab":接着写,在文件结尾继续写入,当文件不存在时会创建文件

"rb+":可读可写,但文件必须存在

"wb+":同"wb"

"ab+":同"ab"

fopen_s:

errno_t fopen_s(FILE** pFile,const char *filename,const char *mode);//第一个参数是文件类型,剩余两个参数与fopen一样

fclose:

fclose(pFile);//关闭文件并保存

操作文件(一般成对使用)

fwrite与fread(一次写入/读取指定字节数)

size_t fwrite(const void *buffer,size_t size,size_t count,FILE *stream);

参数1:要写入文件的首地址,可以是字符串、数组和结构体

参数2、参数3:相乘为写入的字节数,一般2为sizeof(),3为数据的个数

参数4:文件指针

返回值:实际写入的字节数,写入失败返回0

fread

size_t fread(const void *buffer,size_t size,size_t count,FILE *stream);

参数与fwrite一样,只是反过来将文件写入数组中

返回值是实际读取的字节数

feof:

int __cdecl feof(FILE* _Stream);

返回值为0表示不再结尾,返回值为1表示在文件结尾

fwrite与fread可以读写结构体

fputs和fgets

int fputs(const char *str,FILE *stream);//写入成功返回0,失败返回EOF(-1)
char* fgets(const char *str,int n,FILE *stream);//读取成功返回str的地址,失败返回0

只能处理字符串类型的数据

fprintf和fscanf

int fprintf(FILE*const _Stream,char const*Format,...);
int fscanf(FILE*const _Stream,char const*Format,...);

参数1表示文件

参数2表示字符串的指针

剩下的为可选参数

fseek和ftell

int fseek(FILE*stream,long offset,int orgin);
long ftell(FILE*stream);

fseek:设置文件指针的位置

参数1:文件指针

参数2:文件输入指针相对基准的方位(注意使用long型整数)

参数3:设置指针基准(使用定义的宏来进行操作)

ftell:返回文件指针当前位置

举报

相关推荐

0 条评论