C语言文件

文件的概述:

文件通常是字磁盘或固态硬盘上的一段已命名的存储区。对我们而言,stdio.h就是一个文件的名称,该文件中包含一些有用的信息。然而,对os来说,文件更加复杂。
c把文件看做是一系列连续的字节,每个字节都能被单独读取,至于UNIX环境中的文件结构相对应
由于其他环境可能无法完全对应这个模型,C提供两种文件模式:文本模式和二进制模式。

标准文件

1.标准输入
2.标准输出
3.标准错误输出
标准输入是系统的普通输入设备,通常为键盘;标准输出和标准错误输出是系统的葡萄输入设备,通常为显示屏。

fopen()函数
fopen 函数可以打开一个文件,返回文件所在的地址,还创建了一个缓冲区以及包含文件和缓冲区数据的结构。
我们说fopen打开一个流。如果以文本模式打开该文件,就获得了一个文本流,二进制打开为二进制流。

fclose()函数

fclose函数关闭fp指定的文件,必要时刷新缓缓区对于较为正式的程序,应该检查是否关闭成功。关闭成功返回0,否则返回EOF

文件的输入与输出

ch=getc(fp);
getc用来从打开的文件中获取一个字符
putc用来从fp指定的文件中写入ch字符
putc(ch,fpout)

fprintf(),fscanf()第一个参数为文件的指针,就是将指针所指向的内容输入输出到指针 fgets() fputs函数
fseek()函数,边可以把文件看做数组,在fopen()打开的文件中直接移动到任意字节处。
fseek函数有三个参数,返回int类型的值;ftell()函数返回一个long类型的值,表示文件中的当前位置。
fseek()函数
第一个参数为FILE指针,指向带查找的文件,fopen应该已经打开文件
第二个参数是偏移量(offsset)可以为正(前移),负(后移),0
第三个参数表示其实的模式,确定起始点。以下为三种:
SEEK_SE 文件开始处
SEEK_CUR 当前位置
SEEK_END 文件末尾
如:

fseek(fp,10L,SEEK_SET)//定位到文件开始处的第10个字节
fseek(fp,-10L,SEEK_END)//从文件结尾处绘图10个字节
//L后缀表面其值为long

如果一切正常,fseek()返回0,错误返回-1
ftell()函数,返回类型为long ,他返回的是当前的位置。

其他函数 ANSI标准库中的标准I/0系列函数有几十个。 按块去写入和读入

  char buffer[256];
 fwrite(buffer,256,1,fp); 

把一块256字节的数据从buffer写入文件。fp指定待写入的文件。
再如:

 double earnings[10];
 fwrite(earnings,sizeof(double),10,fp)

表示把earnings数组中的数据写入文件,数据被分成10块,每块都是double的大小。 fread()函数 double
earnings[10]; fread(earnings,sizeof(double),10,fp);
把10个double大小的值拷贝到earnings数组中。

更新缓冲区
#include <stdio.h>
int fflush(FILE *stream);
功能:更新缓冲区,让缓冲区的数据立马写到文件中。
参数:
stream:文件指针
返回值:
成功:0
失败:-1

删除文件、重命名文件名
#include <stdio.h>
int remove(const char *pathname);
功能:删除文件
参数:
pathname:文件名
返回值:
成功:0
失败:-1

#include <stdio.h>
int rename(const char *oldpath, const char *newpath);
功能:把oldpath的文件名改为newpath
参数:
oldpath:旧文件名
newpath:新文件名
返回值:
成功:0
失败: - 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值