c语言标准io库下载,C语言标准IO库文件操作

1.1标准IO的文件操作函数

1.1.1fopen

头文件:#include

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

函数功能:打开一个文件path,获取到此文件的文件流指针

文件流指针:FILE*

typedef  struct  file_buf{

int  fd;

char  buf[size];

} FILE ;

形参列表:

path:要打开文件流指针的文件

mode:操作方式

r        :只读(不能创建文件)

r+     :读写(覆盖写,不能创建文件)

w      :只写(清空写,可以创建文件)

w+    :读写(清空写,可以创建文件)

a       :只写(追加写,可以创建文件)

a+     :读写(追加写,可以创建文件)

返回值:

成功:文件流指针

失败:NULL

新创建的文件,权限默认为0666

1.1.2fclose

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

函数功能:关闭fp文件流指针

形参列表:

fp:要关闭的文件流指针

返回值:

成功:0

失败:EOF

1.1.3fprintf

函数原型:int fprintf(FILE*stream, const char *format, ...);

函数功能:往stream文件流指针,按照constchar *format格式写入数据

形参列表:

stream:要写入的文件流指针

const char *format:格式控制,与printf用法一致

返回值:

成功:字节数

失败:负数

和printf用法基本一致,printf是往终端输出数据,而fprintf是往stream写入数据,如果stream文件流指针指向stdout,那么跟printf一样的效果

1.1.4fscanf

函数原型:int fscanf(FILE*stream, const char *format, ...);

函数功能:从stream文件流指针指向的文件中,获取const char *format格式的数据

形参列表:

stream:需要获取数据的文件流指针

const char *format:要获取的数据格式

返回值:

成功:字节数

失败:EOF

和scanf用法基本一致,scanf是从终端获取数据,而fscanf是从stream获取数据,如果stream指向stdin,那么跟scanf一样的效果

1.1.5fgets

函数原型:char *fgets(char*s, int size, FILE *stream);

函数功能:从stream指向的文件中,获取size个字符,存储到s缓存区中

形参列表:

s       :存储获取到的数据的缓存区

size  :获取个数

stream     :文件流指针

返回值:

成功:缓存区的指针

失败:NULL

和gets用法基本一致,gets是从终端获取数据,而fgets是从stream获取数据,如果stream指向stdin,那么跟gets一样的效果

1.1.6fputs

函数原型:int fputs(constchar *s, FILE *stream);

函数功能:往stream文件流指针指向的文件输出s缓存区中的数据

形参列表:

s:要输出的数据缓存区

stream:要输出的对象文件流指针

返回值:

成功:非负数

失败:EOF

和puts用法基本一致,puts是从终端获取数据,而fputs是从stream获取数据,如果stream指向stdout,那么跟puts一样的效果,唯一的区别在于puts会自动加上换行符,而fputs不会自动加上。

1.1.7fread

函数原型:size_tfread(void *ptr, size_t size, size_t nmemb, FILE *stream);

函数功能:从stream文件流指针指向的文件中,读取size*nmemb个字节数据,存储到ptr指向的缓存区中

形参列表:

ptr:存储数据的缓存区

size:一块数据的字节大小

nmemb:块数,有多少块size大小的数据

stream:需要读取数据的文件流指针(数据来源)

返回值:

成功:读取到的块数,不够一块的不算一块

失败/文件末尾:0

例如:fread(buf,100, 5, fp);

fread函数,可以读取到回车,不会因为回车而停止读取,也不会因为空格而停止读取

1.1.8fwrite

函数原型:size_tfwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);

函数功能:往stream文件流指针指向的文件中,写入size*nmemb个字节的数据,数据来源是ptr指针指向的缓存区

形参列表:

ptr:指向要写入的数据来源的指针

size:一块数据的字节大小

nmemb:块数,有多少块size大小的数据

stream:指向对象文件的文件流指针

返回值:

成功:写入的块数

失败:0

例如:fwrite(buf,100, 5, fp);

fwite函数从ptr指向的缓存区中获取数据写入到stream中,遇到回车或者空格,不会停止从ptr中获取数据,形参要求获取多少个字节,就获取多少个字节,如果ptr指向的缓存区中数据不够,fwite会从ptr后越界往下获取数据,写入到stream中

1.1.9fseek

函数原型:int fseek(FILE*stream, long offset, int whence);

函数功能:把文件偏移指针,从whence基准点,偏移offset个字节单位

形参列表:

stream:文件流指针

offset:偏移的单位量

whence:偏移的基准点

SEEK_SET:文件开头

SEEK_CUR:偏移指针当前位置

SEEK_END:文件末尾

返回值:

成功:0

失败:-1

fseek函数与lseek函数区别在于返回值

1.1.10ftell

函数原型:long ftell(FILE*stream);

函数功能:返回文件偏移指针与文件开头的距离

形参列表:

stream:文件流指针

返回值:

成功:文件偏移指针当前偏移量,也就是文件偏移指针与文件开头的距离

失败:-1

1.1.11rewind

函数原型:void rewind(FILE*stream);

函数功能:把文件偏移指针,指向文件开头

形参列表:

stream:文件流指针

返回值:无

rewind(fp)== fseek(fp,0,SEEK_SET);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值