字符输入与输出

单字符I/O

getchar()

putchar()

实际用法

如:while((ch=getchar())!=‘#’)

缓冲区

定义

在用户按下enter键之前不会重复打印刚输入的字符,这种输入称为缓冲输入,存储输入的字符的地方称为缓冲区

作用

把若干个字符作为一个块进行传输比逐个发送更节约时间,其次可以直接用键盘修改输入的字符

无缓冲

点击按钮就立刻执行一个命令,就可以使用无缓冲

分类

完全缓冲

行缓冲

当缓冲区填满时才刷新缓冲区,将内容发送至目的地,通常用于文件输入

click to edit

IBM PC兼容机的编译器都支持无缓冲输入,原型都在conio.h头文件中

如:getche()回显无缓冲函数和getch()无回显无缓冲函数

回显:用户输入的字符直接显示在屏幕上

无回显:用户输入的字符不显示

Unix系统

可以使用ioctl()函数指定待输入的类型

结束键盘输入

C语言处理文件的方式

文件结尾

重定向

创建用户界面

输入验证

键盘输入

文件

定义

是存储器中存储信息的区域

c程序直接处理的是流而不是文件,流是一个实际输入或输出映射的理想化数据流

c把输入和输出设备视为存储设备上的普通文件,stdin流表示键盘输入stdout流表示屏幕输出

方法

存储文件大小的信息,如果文件有3000字节,程序在读到3000字节时便达到文件的末尾(常用)

在文件末尾放一个特殊的字符标记文件结尾,如:Ctrl+Z

检测文件结尾

用getchar()、scanf()函数检测到文件结尾将返回一个特殊的值,即EOF(-1)

实际应用:while((ch=getcha())!EOF)

结束该程序

Unix、Linux系统

在一行开始处输入Ctrl+D

其他

任意位置输入Ctrl+Z