header
C库执行输入/输出操作:
输入和输出操作也可以在C++实现,通过使用C标准输入和输出库(cstdio,在C语言中称为stdio.h)。
这个库使用流来操作物理设备如键盘,打印机,终端或者系统支持的任何其他类型的文件。
流是一种以统一的方式与这些交互的抽象; 所有流都具有相似的属性,与它们所关联的物理介质的各个特征无关。
流在cstdio库中作为指向 FILE 的指针处理对象。一个指向FILE对象的指针唯一地标识一个流,并在涉及该流的操作中用作参数。
在使用库的时候会自动创建三个标准流:stdin, stdout and stderr;
Streams有一些属性可以定义可以在它们上使用哪些函数以及它们如何通过它们处理数据输入或输出。大多数这些属性是在流与使用 fopen 函数的文件(已打开)关联时定义的:
读/写访问 | 文字/二进制 | 缓冲 | 方向
指定流是否对与其关联的物理介质具有读取或写入访问权限(或两者)。
文本流被认为代表一组文本行,每行以新行字符结尾。根据运行应用程序的环境,可能会对文本流进行一些字符转换,以使某些特殊字符适应环境的文本文件规范。另一方面,二进制流是从物理介质写入或读取的字符序列,没有翻译,与读取或写入流的字符一一对应。
缓冲区是一块存储器,其中数据在物理读取或写入相关文件或设备之前被累积。流可以是完全缓冲,行缓冲或无缓冲。在完全缓冲的流上,在填充缓冲区时读取/写入数据,在线路缓冲的流上发生这种情况,当遇到换行符时,在无缓冲的流上,字符意图尽快读取/写入。
在打开时,流没有方向。一旦对它们执行输入/输出操作,它们就会变为byte-oriented或wide-oriented,具体取决于所执行的操作(通常,<cstdio>中定义的函数是byte-oriented,而<cwchar>中的函数是wide-oriented)。有关详细信息,请参阅cwchar。
Streams具有确定的内部指示符,用于指定其当前状态,并影响对其执行的某些输入和输出操作的行为:
错误指示符 | 当与流相关的操作发生错误时,将设置此指示符。可以使用ferror功能检查此指示器,并可以通过调用clearerr,freopen或rewind来重置此指示器。 |
---|---|
文件结束指示符 | 设置时,表示使用流执行的上次读取或写入操作已到达文件结尾。可以使用feof函数进行检查,可以通过调用clearerr或freopen或调用任何重定位函数(rewind,fseek和fsetpos)来重置。 |
位置指示符 | 它是每个流的内部指针,指向下一个I/O操作中要读取或写入的下一个字符。它的值可以通过ftell和fgetpos函数获得,并且可以使用rewinding,fseek和fsetpos重新定位函数来更改。 |
文件操作:
(function )
删除文件
重命名文件
打开临时文件
生成临时文件名
文件访问:
(function )
关闭打开的文件流
刷新流
打开文件流
使用不同的文件或模式重新打开流
设置缓冲流
改变缓冲流
格式化输入/输出:
(function )
将格式化数据写入流
从流中读取格式化数据
将格式化数据打印到stdout
从stdin读取格式化数据
将格式化输出写入一定大小的缓冲区
将格式化数据写入字符串
从字符串读取格式化数据
将格式化数据从变量参数列表写入流
将格式化数据从流读入变量参数列表
将格式化数据从变量参数列表打印到stdout
将格式化数据读入变量参数列表
将格式化数据从变量参数列表写入一定大小的缓冲区
将格式化数据从变量参数列表写入字符串
将格式化数据从字符串读入变量参数列表
字符输入/输出:
(function )
从流中获取字符
从流中获取字符串
将字符写入流
将字符串写入流
从流中获取字符
从stdin 中获取字符
从stdin 中获取字符串
将字符写入流
将字符写入stdout
将字符串写入stdout
将字符放回流中
直接输入/输出:
(function )
从流中读取数据块
写数据块到流
文件定位:
(function )
获取流中的当前位置
重新定位流位置指示符
设置流的位置指示符
获取流中的当前位置
将流的位置设置为开头
错误处理:
(function )
清除错误指示符
检查文件结束指示符
检查错误指示符
打印错误消息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/203997.html原文链接:https://javaforall.cn