文件操作函数

此为个人学习笔记

1.打开

FILE * fp = NULL;``fp = fopen (文件名,文件使用方式):

1.文件名

要操作的文件的名字、可以包含路径信息

1.绝对路径:绝对路径是指文件在硬盘上真正存在的路径。

例如“1.txt”这个文件是存放在硬盘的“C:\Users\15063\Desktop”目录下,那么 “1.txt”这个文档的绝对路径就是“C:\Users\15063\Desktop\1.txt”。


2.相对路径:相对于自己的目标文件位置。

例如“1.htm”文件所在目录为“C:\Users\15063\Desktop\lqf”,而“1.txt”文件所在目录为“C:\Users\15063\Desktop”,那么“1.txt”相对于“1.htm”文件来说,是在其所在目录的上级目录里。


3.两者区别:
①绝对路径是一个文件实际存在于硬盘中的路径。
②相对路径,指的是与自身的目标档案相关的位置。
③绝对路径是指可以从这个路径上查找文件夹,不管是从外部或内部存取。
而相对路径则是与它本身相关的,其它地方的档案和路径,则只能在内部存取

fp_passwd = fopen(“passwd.txt”,“r”);

打开当前目录passdw文件: 源文件(源程序)所在目录

fp_passwd = fopen(“./test/passwd.txt,“r”);

打开当前目录(test)下passwd.txt文件

fp passwd = fopen(“…/passwd.txt”,“r”);

打开当前目录上一级目录 (相对当前目录) passwd.txt文件


2.文件使用方式:

读"、”写”、“文本"或"二进制"等

第二个参数的几种形式(打开文件的方式)读写权限:r w a b t

1. r :以只读方式打开文件

1、文件不存在返回NULL:

2、文件存在返回文件指针,进行后续的读操作

2. w :以只写方式打开文件

1.文件不存在,以指定文件名创建此文件

2.若文件存在,清空文件内容,进行写操作;如果文件打不开(比如文件只读),返回NULL

3. a :以追加方式打开文件

文件不存在,以指定文件名创建此文件(同w)若文件存在,从文件的结尾处进行写操作

4. + :同时以读写打开指定文件
5.打开方式: b t(t可以省略)

指打开方式,与文件的存储方式无关,与操作系统有关

	b:二进制文件

	r:文本文件

Windows平台下

1.以“文本”方式打开文件当读取文件的时候,系统会将所有的"\r\n"转换成”n当写入文件的时候,系统会将”n"转换成”r\n”写入

2.以”二进制"方式打开文件,则读\写都不会进行这样的转换

在这里插入图片描述

3.fp文件指针:

指向被打开的文件,失败返回空,成功返回相应指针



2.关闭

1.调用的一般形式是:
fclose(文件指针:指向要关闭的文件);

2.返回值:
1.关闭文件成功,返回值为0.

2.关闭文件失败,返回值非零



3.文件的顺序读写

对文件操作最常用的是“读”和“写:

C 语言提供了多种对文件读写的函数:

字节读写函数:fgetc和fputc

字符串读写函数: fgets和fputs

数据块读写函数:fread和fwrite

格式化读写函数: fscanf和fprintf



1.字节读写

1.字节的读 ch = fgetc(fp);//读一个字节

说明:从指定文件读一个字节赋给ch(以“读”或“读写”方式打开) 文本文件:读到文件结尾返回EOF

二进制文件: 读到文件结尾,使用feof 判断结尾

2.字节的写 fputq(ch,fp);//写入一个字符

说明:把一个ch变量中的值(1个字节)写到指定的文件

如果输出成功,则返回输出的字节;

如果输出失败,则返回一个EOF。(EOF是在stdio.h文件中定义的符号常量,值为-1)



2.字符串的读写

fgets(str,n,fp); //读一个字符串

说明:从fp指向的文件读入n-1个字符,在读入n-1个字符之前遇到换行符或EOF,读入提前结束,并读取换行符,在最后加一个’\O’, str为存放数据的首地址

返回值:
成功:返回读到字符串的首元素地址

失败: 返回NULL



3.数据块读写

fread(buffer,size,count,fp);读取数据块

fwrite(buffer,size, count,fp);写入数据块

说明:

参数:
buffer:指向存储数据空间的首地址的指针

size:次读写的数据块大小

count:要读写的数据块个数

fp:指向要进行写操作的文件指针

返回值:
实际读写的数据块数(不是总数据大小)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值