一、单字符I/O:getchar()和putchar()
void example1(){
char ch;
while((ch = getchar()) != '#'){//getchar()和putchar()每次只读取一个字符,当读取到#时停止循环
putchar(ch);//比如在控制台输入123#456,则最终会输出123
}
}
实际上,getchar()和putchar()并不是真正的函数,它们是被定义为供预处理器使用的宏。
二、缓冲区
回显用户输入的字符后立即重复打印该字符是属于无缓冲输入,即正在等待的程序可立即使用输入的字符。大部分系统在用户按下Enter键之前不会重复打印刚输入的字符,这种输入形式属于缓冲输入,用户输入的字符被收集并存储在一个被称为缓冲区的临时存储区,用户按下Enter键后,程序才可使用用户输入的字符。
缓冲分为两类:完全缓冲I/O和行缓冲I/O。完全缓冲I/O指的是当缓冲区被填满时才刷新缓冲区,通常出现在文件输入中。行缓冲I/O指的是出现换行符时刷新缓冲区,键盘输入通常就是行缓冲区I/O。
三、结束键盘输入
1、文件、流和键盘输入
文件是存储器中存储信息的区域,文件通常都保存在某种永久存储器中,如硬盘等。
从概念上看,C语言处理的是流,而不是处理文件。流是一个实际输入和输出映射的理想化数据流,打开流的过程就是把流与文件相关联,而且读写都是通过流来完成的。
2、文件结尾
操作系统可以使用内嵌的Ctrl+Z来标记文件结尾,这曾经是操作系统使用的唯一标记&#