关于输入输出函数一些函数的简单介绍

本来要写文本通讯录的,但是发现好多函数都忘记了,就查了些并记录下来,希望对你有用。本来顺手准备手动笔芯的,发现太娘了,就不写了。

首先,要了解文件输入输出,我们要知道什么是流?
可以想象水从水管里出来,这就是一股水流。就C程序而言,所有的I/O操作就是简单的从程序移进、移出字节的事情,因此这种字节流被称为流 。
流被分为两种: 文本流和二进制流 。

相较于gets,puts函数,fgets和fputs函数指明了文件源和目标,是格式化函数

char * gets ( char * str );
int puts ( const char * str );
char * fgets ( char * str, int num, FILE * stream );
int fputs ( const char * str, FILE * stream );

在C程序中读写文件,必须有FILE*类型的文件(指针),FILE*是文件的句柄。

打开流:函数原型:FILE * fopen ( const char * path, const char * mode );

函数参数:path:要打开文件的路径,mode:打开的模式,返回值:调用成功时返回 文件流指针,调用失败时返回 NULL
mode参数可以是以下参数中的一个:
r:只读模式;要求文件必须存在
w:只写模式;文件存在则将文件内容清零,文件不存在则创建
r+:读写模式;要求文件必须存在
w+:读写模式;文件存在则将文件内容清零,文件不存在则创建
a:追加只写模式;文件不存在则创建,文件存在内容也不清零
a+:追加读写模式;文件不存在则创建,文件存在内容也不清零

关闭流:函数原型:int fclose( FILE *fp );

功能是关闭一个流,要和fopen配套使用哦。

fseek的用途:控制件指针偏移。

函数原型:int fseek(FILE *stream, long offset, int fromwhere)
参数1是文件流指针,参数2是偏移量大小,参数3是偏移模式,通常为:SEEK_CUR(文件当前位置) SEEK_SET(文件开头) SEEK_END(文件结尾)

rewind:是将文件内部的指针重新指向一个流的开头

long ftell(FILE * stream);函数 ftell 用于得到文件位置指针当前位置相对于文件首的偏移字节数。

fread:它从文件流中读数据,最多读取count个项,每个项size个字节。

size_t fread ( void *buffer, size_t size, size_t count, FILE *stream)
1. buffer:用于接收数据的内存地址
2. size:要读的每个数据项的字节数,单位是字节
3. count:要读count个数据项,每个数据项size个字节.
4. stream:输入流
5. 如果调用成功返回实际读取到的项个数(小于或等于count),如果不成功或读到文件末尾返回 0。

fwrite:向指定的文件中写入若干数据块

size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
(1)buffer:是一个指针,对fwrite来说,是要获取数据的地址;
(2)size:要写入内容的单字节数;
(3)count:要进行写入size字节的数据项的个数;
(4)stream:写入的目标文件指针;
(5)返回实际写入的数据项个数count。

feof是C语言标准库函数,其原型在stdio.h中,其功能是检测流上的文件结束符,如果文件结束,则返回非0值,否则返回0,文件结束符只能被clearerr()清除。

注意:feof判断文件结束是通过读取函数fread/fscanf等返回错误来识别的,故而判断文件是否结束应该是在读取函数之后进行判断。比如,在while循环读取一个文件时,如果是在读取函数之前进行判断,则如果文件最后一行是空白行,可能会造成内存错误。

最后,汪汪,祝大家狗年吉祥!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值