C语言IO知识点

1、什么是IO

I:input
o:output
输入:从键盘将数据输入到内存中
输出:从内存将数据拷贝到显示屏上

对IO更深层次的理解
Linux下一切皆文件
输入:从文件将数据输入到内存中
输出:从内存将数据拷贝到文件中

2、标准IO

标准IO由ANSI C标准说明
(1)可以跨平台,既可以在windows下使用,又可以在Linux上使用
(2)库函数
(3)有缓冲机制
(4)通过文件流指针来进行操作
(5)一般用于普通文件的操作

3、相关概念

3.1文件

一组相关数据的有序集合
文件名:这组集合的名称

3.2 文件类型

1、普通文件
a.ASCII码文件(文本文件) b、二进制文件
2、目录文件 d
3、块设备文件 b
4、字符设备文件 c
5、链接文件 l
6、管道文件 p
7、套接字文件 (socket)s

3.3 系统调用

系统:操作系统
调用:调用函数
系统调用:调用操作系统提供的函数
系统调用:操作系统提供给应用程序的接口(函数)

3.4 缓冲区

缓冲区

作用:减少系统调用的次数
全缓存:当缓冲区满、程序结束、强制刷新缓冲区时会刷新缓冲区
行缓存:当缓冲区满、程序运行结束、强制刷新缓冲区、遇到换行符时会刷新缓冲区
不缓存:没有缓存区,直接输出
程序运行起来之后,会默认打开三个文件,标准输入、标准输出、标准出错,对应的流指针分别为stdin、stdout、stderr

3.5 流和FILE指针

3.5.1 流

流:字节的进进出出
流的分类:
文本流:数字2001对应的文本流为’2’ ‘0’ ‘0’ ‘1’(50 48 48 49)
二进制流:数字2001对应的二进制流:00000111 11010001

3.5.2 FILE指针

每个被使用的文件都会在内存中开辟一个空间,用来保存文件的相关信息,这些信息保存在结构体中,取名为FILE
注意:标准IO中所有的操作都是围绕流来进行的,流用FILE *来描述

4、标准io相关函数

文件操作步骤:
打开文件
操作文件
关闭文件

4.1 打开文件

FILE *fopen(const char *pathname, const char *mode);
函数功能:打开文件
参数1:要打开文件的路径
参数2:打开的方式
r:以只读的方式打开文件,文件不存在则出错
r+:以可读可写的方式打开文件,文件不存在则出错
w:以只写的方式打开文件,文件不存在则新建,文件存在清空文件中的内容
w+:以可读可写的方式打开文件,文件不存在则新建,文件存在清空文件中的内容
a:以追加的方式打开只写的文件,文件不存在则新建,文件存在则追加到文件的末尾
a+:以追加的方式打开可读可写文件,文件不存在则新建,文件存在则追加到文件的末尾
返回值:成功返回文件流指针,失败返回NULL

4.2 关闭文件

int fclose(FILE *stream);
参数:fopen的返回值,已经打开的文件流指针
返回值:成功返回0,失败返回EOF(-1)
注意:EOF(end of file)只能判断是否到达文本文件的末尾,不能判断二进制文件

4.3 操作文件(读/写)

按字符读写、按行读写、按块读写

4.3.1 按字符读写

getchar()、putchar()只能从键盘输入
fgetc()、fputc() 即能从键盘输入、又可以从文件中输入

int fgetc(FILE stream);
功能:从指定的流中读取一个字符
参数:fopen的返回值,已经打开的文件流指针
返回值:成功返回读到ASCII码值,失败or读到文件末尾返回-1

int fputc(int c,FILE stream)
功能:向指定的流中输出一个字符
参数1:要输出的字符
参数2:fopen的返回值,已经打开的文件流指针
返回值:成功返回写入的ASCII码值,失败返回-1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值