基于流的I/O操作

一、对缓存的操作

#include <stdio.h>
void setbuf(FILE *fp,char *buf)
void setbuffer(FILE *fp,char *buf,size_t size)
void setlinebuf(FILE *fp)
int setvbuf(FILE *fp,char *buf,int mode,size_t size)
用setvbuf就行了,mode  _IOFBF,_IOLBF,_IONBF


二、流的打开与关闭

#include <stdio.h>
FILE *fopen(const char *pathname, const char *type)
FILE *freopen(const char *pathname, const char *type,FILE *fp)
FILE *fdopen(int fd, const char *type)
fopen打开一个路径名由pathname指示的文件,fopen返回FILE对象的指针,失败返回NULL

freopen在指定的流上fp指示,打开指定文件由pathname指示,流已打开先关闭。用于将指定文件打开为预定义的流:标准输入、标准输出或标准出错

fdopen,通常用于管道和网络通信获得的描述符,fdopen不会创建文件,也不会将文件截短为0


type类型

type值操作文件类型是否新建文件是否清空原文件可读可写读写开始位置
r文本文件文件开头
r+文本文件文件开头
w文本文件文件开头
w+文本文件文件开头
a文本文件文件结尾
a+文本文件文件结尾
rb二进制文件文件开头
r+b或rb+二进制文件文件开头
wb二进制文件文件开头
w+b 或 wb+二进制文件文件开头
ab二进制文件文件结尾
a+b 或 ab+二进制文件文件结尾
带a的是在文件结尾处追加,带b的是指二进制文件




三、关闭流

#include <stdio.h>
int fclose(FILE *fp)
返回,成功0,失败EOF,EOF是定义在<stdio.h>中的宏,值为-1

本地关闭无需检查,网络调用需要检查


四、流的读写

1、字符的I/O

(1)字符的输入

#include <stdio.h>
int getc(FILE *fp)
int fgetc(FILE *fp)
int getchar(void)
一次读入一个字符

#include <stdio.h>
int ferror(FILE *fp)
int feof(FILE *fp)
条件为真为非0,为假则为0

读入字符出错时,ferror为真;位于文件尾,feof为真


FILE对象为流保持两个标志,出错标志和文件结束标志,调用clearerr可以清除这两个标记

#include <stdio.h>
void clearerr(FILE *fp)

从流读取后调用ungetc将字符返回流中

#include <stdio.h>
int ungetc(int c,FILE *fp)

返回,成功返回要送回流的字符的值,出错为EOF


(2)字符的输出

#include <stdio.h>
int putc(int c,FILE *fp)
int fputc(int c,FILE *fp)
int putchar(int c)













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值