标准I/O库 --文件I/O

I/O定义

在这里插入图片描述

输入(input)
文件输入至程序

输出(output)
程序输出至文件

fopen()

函数原型

FILE *fopen(const char *filename, const char *mode);

参数mode

mode说明
r以读模式打开。
w以写模式打开,并把文件长度截为零。
a以写模式打开,追加新内容在文件尾。
  • 以mode w/a打开文件时,若文件不存在,将创建该文件。
  • rb、wb、ab表示以二进制模式(而不是文本模式)打开文件。
  • r(b)+、w(b)+、a(b)+表示以更新模式(读和写)打开文件。

返回值
返回文件指针。

fclose()

函数原型

int fclose(FILE *stram); 

关闭文件流stream, 写出缓冲区的输出数据,丢弃缓冲区的输入数据,并释放缓冲区。

返回值
成功时返回0;否则返回EOF.

fread()

从文件流读取数据,写入缓冲区。

函数原型

size_t fread(void *restrict ptr, size_t size, size_t nmemb, FILE *restrict fp);

参数

参数名说明
ptr指向缓冲区
size每项记录的长度
nmemb要传输的记录个数
fp指向文件流

返回值
返回成功传输的记录个数。

示例

double earnings[10];
fread(earnings, sizeof (double), 10, fp);
/* 将10个double大小的值从fp指向的文件拷贝至earning指向的数组。 */

fwrite()

从缓冲区读取数据,写入文件流。

函数原型

size_t fwrite(const void *restrict ptr, size_t size, size_t nmemb, FILE *restrict fp);

参数
与fread类似。

返回值
与fread类似

fflush()

函数原型

int fflush(FILE *fp);

对于输出流:立即写出缓冲区中数据。
对于输入流:丢弃缓冲区中数据(实则未定义)

返回值
发生错误时返回EOF并设置errno;否则返回0.

示例

  1. 当用printf()调试程序时,可在每个printf语句后立即调用fflush():
printf("something or other");
fflash(stdout);  //使缓冲区的数据立即写入stdout.
  1. 刷新标准输入:
fflush(stdin); //将输入缓冲区的数据丢弃。
//此用法不常用,应该用类似下面的代码代替:
while(getchar() != '\n')
	continue;
  1. 刷新所有输出流:
fflush(NULL);

fssek()

函数原型

int fssek(FILE *stream, long int offset, int whence);

参数

参数名说明
stream指向文件
offset用来指定位置
whence定义offset的用法
  • whence参数
whence取值说明
SEEK_SEToffset是一个绝对位置
SEEK_CUR基于当前(current)位置的相对位置
SEEK_END基于文件尾(end)的相对位置

返回值
成功时返回0;
失败时返回-1,并设置errno.

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值