首页 > 代码库 > 第5章标准I/O库总结
第5章标准I/O库总结
1 fwide函数试图设置流的定向(流的定向决定了读写单字节还是多字节字符)
int fwide(FILE *fp,int mode) 宽定向返回正值,字节定向返回负值,为定向返回0已定向流不会改变流的定向
2 setbuf函数中指定的缓冲区的长度为BUFSIZ,这个常量在stdio.h中定义
3 freopen和fdopen函数
FILE *freopen(char *pathname,const char *type,FILE *fp)
FILE *fdopen(int filedes,const char *type)
3 gets和fgets、puts和fputs函数
char *fgets(char *buf,int n,FILE *fp)char *gets(char *buf)int fputs(const char *str,FILE *fp)int puts(const char *str)
gets函数无法指定缓冲区长度,可能导致写到缓冲区之后的存储空间中
puts函数会添加一个换行符
4 二进制I/O
size_t fread(void *buf,size_t size,size_t n,FILE *fp)size_t fwrite(const void *ptr,size_t size,size_t n,FILE *fp)
5 定位流
流中的位置可以用long、off_t、fpos_t三种类型表示,对应有三种定位、设置流当前位置的函数
long:
long ftell(FILE *fp)int fseek(FILE *fp,long offset,int whence)
off_t:
off_t ftell(FIEL *fp)int fseeko(FILE *fp,off_t offset,int whence)
pos_t:
int fgetpos(FILE *fp,fpos_t *pos)int fsetpos(FILE *fp,const fpos_t *pos)
6 格式化I/O
格式化输出:printf、fprintf、sprintf、snprintf(相比于sprintf,可以指定缓冲区长度n,超出长度将溢出)
vprintf、vfprintf、vsprintf、vsnprintf
格式化输入:scanf、fscanf、sscanf
vscanf、vfscanf、vsscanf
第5章标准I/O库总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。