文件操作函数1

文件的操作
标准流
stdin 标准输入流 stdout 标准输出流 stderr 标准错误流
FILE 文件位置指示符 错误指示符 文件结束指示符

1,提高速度 使用文件指针
2 文件指针与磁盘文件建立联系,以后对文件操作都将通过文件指针来进行。
fopen(文件名,使用文件方式)
文件打开不成功 将返回一个空指针NULL
文件使用方式 r w rb wb
fgetc() getc() 从指定文件中一次读取一个字符
fputc() putc() 一次输出一个字符到指定文件
fread() 一次读取一个数据块
fwrite() 一次输出一个数据块到指定文件
fscanf() 从指定文件按格式读取数据
fprintf() 按指定格式将数据输出到指定文件中
fseek() 可移动位置指针到指定位置上
ftell() 可获取当前位置指针的位置
rewind() 可使位置指针回到文件的开头
fclose() 关闭文件

读写
字符读写: fgetc 和 fputc
字符串读写函数 fgets 和fputs
数据块读写函数 fread 和 fwrite
格式化读写函数 fscanf 和 fprintf

fgetc 每次只读取一个字符
fgets 从指定的文件中读一个字符串赋值到一个数组中
fgets(字符数组,n,文件指针);
n是一个正整数,表示从文件中读出的字符串不超过n-1
fgets(str,n,fp) 读取的时候遇到换行符或EOF,读出结束
fgets 返回字符数组的首地址

fputs 向指定的文件写入一个字符串
fputs(字符串,文件指针)
字符串可以是字符串常量,字符数组名,或者指针变量
fputs("ijk",fp);

数据库读写函数
fread 和fwrite 用来读写一组数据
fread(buffer,size,count,fp);
fwrite(buffer,size , count ,fp);
buffer 是一个指针,在fread中 存放输入数据的首地址,在fwrite 表示存放输出数据的首地址
size 数据库的字节数
count 读写数据块块数
fp 表示文件指针
fread(fa,4,5,fp);
从fp所指的文件中,每次读4个字节送入实数组fa 中,连续读5次,即读5个实数到fa中
使文件编程的效率提高。
随机读写

1,随机读写
2. 文件定位
3. fseek 函数
随机读写
顺序读写 , 读写文件从头开始,顺序读写各个数据
随机读写只读写文件中某一指定的部分,移动文件内部的位置指针到需要读写的位置,再进行读写
实现随机读写的关键是要按要求移动位置指针,这称为文件的定位
文件定位 移动文件内部位置指针的函数有两个,rewind 函数和fseek函数
rewind(文件指针)
它的功能是把文件内部的位置指针移到文件首
文件定位
fseek 函数 用来移动文件内部位置指针,其调用形式为
fseek(文件指针,位移量,起始点)
文件指针 指向文件
位移量 表示移动的字节数,表示位移量要求加后缀“L”
“起始点”表示从何处开始计算位移量,规定的起始点有三种:文件首,当前位置和文件尾
fseek(fp,100L,0) 意义是把位置指针移动到离文件首100个字节处
fseek 函数一般用于二进制文件。在文本文件中由于要进行转换,故往往计算的位置会出现错误
随机读写
移动位置指针之后,可用钱买介绍的任一种读写函数进行读写,由于一般是读写一个数据块,因此常用fread 和fwrite 函数


文件的检测函数
出错检测
检测函数
feof函数
feof(文件指针) 判断文件是否处于文件结束的位置,如文件结束,则返回值为1,否则为0
ferror(文件指针) 检查文件在用各种输入输出函数进行读写时是否出错,如果ferror返回值为0 表示未出错,1表示出错
clearerr(文件指针) 本函数用于清除出错标志和文件结束标志,使它们为0值


fseek 与fread 连用

总结
文件操作常用函数
clearerr 清除文件流的错误指标
fclose 关闭文件 用来关闭fopen()打开的文件
fdopen 将参数 fildes 的文件描述词
feof 检查文件是否督导了文件结尾,到了就返回非0,其他情况为0 , 若是用fseek 定位到文件的结尾,但是还是不能正确返回,因为其设计是为读文件而设计的
不是为定位文件而进行设计的
fflush 强迫将缓冲区内的数据写回到文件中 本质是刷新作用
fgetc 读取一个字符
fgets 依次要读出很多个,最后会加上NULL 作为字符串的结束标记
fgetc 与 fgets 区别就是一个读的多 一个读的少
fileno 指定文件的描述词
fopen 打开一个文件 使文件更加安全
fputc 写入文件流 对应着 fgetc
fputs 写入更多内容到文件 对应着 fgets
fread 从文件流中读取数据 必须用 feof() 和ferror() 防止要发生的情况
freopen 打开文件 重新打开一个文件指针 自动关闭以前的,重新打开新的
fseek 移动文件流的读写位置 stream 表示文件的指针
ftell 取得文件流的读取位置
fwrite 把大量的数据写入到文件中 四个参数 文件指针 要写多少 每个大小 数组的名字
getc 读取一个字符
getchar 从键盘上输入数据
gets() 从键盘上读取一个字符串
mktemp 产生唯一的临时文件名 当前使用以后不用长期保存
putc 写
putchar 把内存中的某个数据在显示器上显示 的某个变量
rewind 把文件流的读写位置移到文件的开头
setbuf (stream,buf,buf?_IOFBF:_IONBF,BUFSIZ) 返回值
setbuffer 设置文件缓冲区
setlinebuf 设置缓冲区
setvbuf 设置文件流的缓冲区
ungetc 将指定字符写回文件流中


基本的 读写 关闭 定位

原文地址:https://www.cnblogs.com/joyclub/p/4437608.html