此为个人学习笔记
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:指向要进行写操作的文件指针
返回值:
实际读写的数据块数(不是总数据大小)