认识标准IO

一、什么是标准IO

标准IO:ANSI C标准提供的一系列用来进行输入和输出的函数

只要操作系统有c库就可以使用标准IO、标准IO有缓存区、标准IO在系统调用之上构造的。

二、文件的概念

Linux一切皆文件:

-普通文件
d 目录文件
l 链接文件
s socket文件
p 管道文件
c 字符设备文件
b 块设备文件

三、系统调用 

系统调用:内核给应用程序留的接口(函数)

标准IO有缓冲区,文件IO没有缓冲区,有缓冲区可以减少系统调用的次数,系统的开销就会减少

全缓存:缓冲区满、强制刷新、文件关闭、程序结束时刷新缓冲区

行缓存:遇到换行符、缓冲区满、强制刷新、文件关闭、程序结束时刷新缓冲区

不缓存:没有缓存区

四、标准IO相关函数

打开一个文件,就会有缓冲区产生,也会有一个FILE类型的变量的产生,这个FILE类型是一个结构体,用来描述一个打开的文件(一个打开的流)的详细信息,所以如何操作文件(流)就是通过指向这个结构体变量的指针来操作的.

打开文件:FILE *类型指针产生

读写文件关闭文件:用FILE*类型的指针来操作

4.1 打开文件

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

函数功能:打开文件

参数1:要打开文件的路径

参数2:打开的方式

4.2 操作文件

int fgetc(FILE *stream);

函数功能:从指定的流中读取一个字符

参数:fopen的返回值,已经打开的文件流指针

返回值:成返回读到的ASCII码值,读到文件末尾或者失败返回-1

int fputc(int c, FILE *stream);

函数功能:向指定的流中输出一个字符

参数1:要输出的字符

参数2:文件流指针

返回值:成功返回写入的ASCII码值,失败返回-1

2、按行读写

char *fgets(char *s, int size, FILE *stream);

函数功能:从指定的流中读取字符串

参数1:保存读取到的内容的首地址

参数2:空间的大小

参数3:要操作的文件流指针

返回值:成功返回读取到的内容的首地址,失败返回NULL

注意:

(1)最多读取size-1个字符

 (2)fgets读取的时候会将换行符也读入

 

int fputs(const char *s, FILE *stream);

函数功能:向指定的流中输出字符串

参数1:要输出的内容的首地址

参数2:要操作的流指针

返回值:成功返回非负整数,失败返回-1

总结:

(1)fgets和gets的区别

     a、fgets比gets更安全

     b、fgets会读取换行符,而gets不会

(2)fputs和puts的区别

     puts会自动添加换行,而fputs不会

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值