第八章 字符输入/输出和输入确认
来源:互联网 发布:泰州淘宝美工培训学校 编辑:程序博客网 时间:2024/05/14 16:17
1.非缓冲输入:输入字符立即回显。
2.
缓冲输入:延迟回显。
缓冲输入分为两类:完全缓冲(fully buffered)I/O和行缓冲(line-buffered)I/O。对完全缓冲来说,缓冲区填满时被清空(内容被发送至其目的地),这种类型的缓冲通常出现在文件输入中。缓冲区的大小取决于系统,但512和4096字节是常见的值。对行缓冲来说,遇到一个换行字符时被清空缓冲区。键盘输入是标准的行缓冲,按下回车键清空缓冲区。
3.文件是一块存储信息的存储器区域。C程序处理一个流而不是直接处理文件。流是yield理想化的数据流,实际输入或输出映射到这个数据流。键盘和显示设备作为每个C程序自动打开的文件来对待。键盘输入由一个被称为stdin的流表示,输出则由stdout的流表示。
4.
操作系统对文件结尾检测:
a)有内嵌的Ctrl+Z字符来标识文件结尾。
b)让操作系统存储文件大小的信息。
C的处理方法是让getchar()在到达文件尾时返回一个特殊的值(EOF,end of file,通常为-1,stdio.h中定义),而不去管操作系统是如何监测的。getchar()本身的类型实际上是int,声明char也是可以的。对putchar没有影响。在UNIX上,输入Ctrl+D会导致传送文件尾信号。
5.
输入重定向:<;
输出重定向:>;
追加添加:>>;
管道运算符(将一个程序的输出与第二个程序的输入连接起来):|;
组合重定向的规则:
a)只能用于数据文件和可执行文件连接。不能用于一个数据文件与另一个数据文件或者一个可执行程序与另一个。
b)输入不能来自一个以上;输出不能来自一个以上。
c)空格不是必须的。
6.混合使用scanf()和getchar()函数,那么在调用getchar()之前scanf()恰好在输入中留下一个换行符时,将会产生问题。然而,如果知道这个问题,就可以在编程中解决。
解决方法:
#include<stdio.h>int main(){int ch;char c;scanf("%c",&c);printf("%c\n",c);while((ch=getchar())!= '\n')//吃掉遗留在缓存的'\n' continue;ch=getchar();putchar(ch);return 0;}
- 第八章 字符输入/输出和输入确认
- 字符输入/输出和输入确认
- 字符输入/输出和输入确认
- C语言学习_008_字符输出/输入和输入确认
- C语言之字符输入/输出和输入确认
- C primer plus第8章(字符输入/输出和输入确认)习题
- 字符输入和输出
- 字符输入/输出和输入确定
- Python编程入门-第八章 输入和输出 -学习笔记
- 第15章-输入/输出 --- 字节流和字符流
- 字符输入和输出(代码片段)
- 循环输入和输出二维字符数组
- 4.字符和格式化输入/输出
- 字符输入,输出问题
- 字符输入/输出 putchar
- 字符输入、输出
- 字符输入/输出流
- C Primer Plus 第8章 字符输入/输出和验证输入 编程练习
- 如何分析Android的Log
- 当你在浏览器中输入baidu.com并且按下回车之后发生了什么?
- android 仿window8下沉效果(类似携程主页)
- LINQ 应用小例子
- 边角料也能做背景墙 装修板材变废为宝
- 第八章 字符输入/输出和输入确认
- eclipse maven springmvc搭建
- 黑马程序员-----java中的继承(子类父类小结)
- Android binder 设计思想
- 设计模式问答(二)
- [LinkedIn] Mirror of a binary tree
- HDFS的设计——两大一小+又多又快
- Apache HttpCompenent 学习 (一) HttpCore
- webapp前端技术解决方案