C学习笔记(八)字符输入输出和输入确认
缓冲区
缓冲区分为两类:完全缓冲(fully buffered)I/O和行缓冲(line-buffered)I/O。完全缓冲在缓冲区满时被清空(内容被发送至目的地)。这种类型常出现在文件输入中。缓冲区的大小取决于系统。行缓冲在遇到换行字符时被清空。键盘输入是标准的行缓冲。
文件、流和键盘输入
c程序处理一个流而不是一个文件。键盘输入由一个被称为stdin的流表示,而到屏幕(或电子传真机、或其他输出设备)上的输出由一个被称为stdout的流表示。
文件结尾
检测文件结尾的一种方法是在文件中放置一个特殊字符来标志结尾。例如CP/M、IBM/DOC和MS/DOC的文本文件中曾使用一种方法。使用内嵌的Ctrl+Z字符来标识文件结尾。
第二种方法是让操作系统存储文件大小的信息。如果一个文件有3000字节,而且程序已经读取了3000字节,则改程序就到达了文件结尾。
对于这两种方法,c的处理方法是让getchar()在到达文件结尾时返回一个特殊值,此值名称为EOF(End Of File)。
重定向和文件
令程序和文件一同工作有两种方式。一种方式是明确的使用打开文件、关闭文件、读文件、写文件等专门函数。
第二种方式是使用一个设计用于与键盘和屏幕共同工作的程序,但是使用不同通道重定向输入和输出,例如输入到文件和从文件输出。
输入重定向
假如你编译了echo_eof.c,要运行程序,键入该程序的名字。
echo_ eof
假设你要对一个名为words的文本文件使用该程序。
echo_ eof<words
<符号是Unix、Linux重定向运算符。该运算把words文件的内容引导至echo_eof程序。
输出重定向
假如你想echo_eof将你的键盘输入发送给一个名为mywords的文件。
echo_ eof>mywords
>会建立一个新文件,然后将echo_eof的输出重定向到该文件。
组合重定向
假如你希望制作mywords的一个副本,并将其命名为savewords,只需发出命令:
echo_ eof<mywords>savewords
下面的语句同样可以实现,重定向运算符的顺序无关紧要:
echo_ eof>savewords<mywords
相关文章
- 对于 DOP 中字符显示坐标的提取
- 基于BP神经网络的车牌定位、字符分割及识别算法matlab仿真
- Linux终端:用cat命令查看不可见字符
- C++ 字符型 字符串型
- 从零开始学android开发-字符如何转换整形 string 转化为int
- iconv_close - 关闭字符转换描述符
- 【C语言】编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。
- C/C++ | C语言字符数组初始化,有些赋值方式千万注意
- 数字转换成千字符
- Linux常用基本命令:tr-替换或者删除字符
- 字符函数和字符串函数------------ C语言
- 华为OD机试 -找字符(Java) | 机试题+算法思路+考点+代码解析 【2023】
- 动态限制EdiText仅仅能输入特定字符
- python 列表,字符中不常用但重要的知识小试验(1)
- 【历史上的今天】11 月 7 日:图灵奖女性得主诞生;Twitter 告别 140 字符时代;首位中国 AI 主播
- IO 字符流学习
- mysql在字符编辑窗口下怎么退出编辑界面?(mysql下的ctrl+c与c)
- java 输入一个字符串,打印出该字符串中字符的所有排列
- [LeetCode] 1247. Minimum Swaps to Make Strings Equal 交换字符使得字符串相同
- [LeetCode] 3. Longest Substring Without Repeating Characters 最长无重复字符的子串
- 【java养成】:I/O(输入/输出操作)——>File类、字节流、字符流
- 练习1-14 编写一个程序,打印输入中各个字符出现频度的直方图(水平)