C语言中文件

什么是文件

文件通常是在磁盘或者固态硬盘上的一段已命名存储区。

C语言拥有两种文件模式:文本模式和二进制模式。

如果文件最初使用二进制编码的字符如ASCII表示文本,则该文件是文本文件,其中包括文本内容;如果文件中的二进制值代表机器语言代码或者数值数据(如用二进制值表示int型的值)、图片、音乐编码等,则该文件是二进制文件其中包含二进制内容。

处理文件常用函数

fopen()和fclose()

fopen(待打开文件的名称,用于打开文件的模式)

 用与打开文件

返回值:成功——文件指针(指向FILE的指针),失败——NULL

打开文件的模式:

fclose(文件指针)

关闭文件

返回值:成功——0,失败——EOF(-1)

getc()和putc()

int getc(FILE*fp)

从当前文件指针处读取一个字符

返回值:当前字符的ASCII值,文件结尾则返回EOF

int putc(char ch,FILE*fp)

在当前文件指针处写入一个字符ch

返回值:写入成功——该字符的ASCII值,失败——EOF

getc()和putc()除了参数包含文件指针外与getchar()和putchar无异

fgets()和fputs()

char *fgets(char*str,int size,char*stream) 第一个参数是输入字符串的地址,第二个是输入的大小,第三个是文件指针(如果通过键盘输入则用stdin标准)

读取指定大小的字符串

返回值:成功——str,遇到零字符/失败——EOF

int fputs(const char*str,FILE *stream)  第一个参数是写入字符串的地址,第二个是文件指针

将字符串写入文件中(如果输出在屏幕上则用stdout标准)

返回值:成功——非负整数,失败——EOF

fprintf()和fscanf()

指定文件中读入/写入字符

工作方式与printf()和scanf()类似,但是它们的第一个参数要指定待处理的文件

fseek()和ftell()

fseek(文件指针,偏移量,模式) 

第一个参数是文件指针;

第二个必须是long类型的值,表示指针移动的字节数,如0L,10L,-10L,分别表示不移动、向后移动10字节、向前移动十字节;

第三个表示读写地址的起始点,有SEEK_SET文件开始、SEEK_CUR当前位置、SEEK_END文件结尾

将文件指针定位到指定位置

返回值:成功——0,失败(如移动的距离超出文件范围)—— -1

long ftell(文件指针)

返回当前读写地址距离文件开头的字节数

返回值:long型,是当前读写地址距离文件开头的字节数

int fflush(FILE*fp)

刷新缓冲区——将输入缓冲区中所有未写入数据发送到fp指定的输出文件

int feof(FILE *fp)和int ferror(FILE *fp)

标准输入函数到达文件结尾或者发生错误时都会返回EOF,feof和ferror用来区分这两种情况

feof()检测到文件结尾时候返回一个非零值,否则返回0

ferror()检测到 读/写 出错时返回一个非零值,否则返回0

int setvbuf(FILE*restruct fp , char *restrict buf, int mode, size_t size)

创建供标准I/O使用的缓冲区。

fp识别待处理的流,buf指向待使用的存储区, size告诉setvbuf数组的大小, mode有_IOFBF完全缓冲(缓冲区填满是刷新), _IOLBF行缓冲(缓冲区满时或写入一个换行符时刷新), _IONBF无缓冲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值