8.3 结束键盘输入
在编写C程序时,处理输入的终止条件是一个重要的概念,尤其是在处理来自键盘的输入时。本节将讨论如何正确标记输入的结束,并介绍C语言中的文件、流与键盘输入的关系。
8.3.1 文件、流和键盘输入
在C语言中,文件是存储信息的基本单元,通常保存在永久性存储器中,如硬盘或U盘中。C语言提供了强大的库函数来处理文件的打开、读取、写入和关闭操作,这些函数构成了C语言的标准输入输出包(Standard I/O package)。在较高层次上,C通过流的概念将文件和程序的输入输出操作联系起来。
什么是流?
流(stream)是一个数据的传输通道,可以是文件、设备或者其他输入输出媒介。流使得程序能够以统一的方式处理不同来源的输入输出。例如,标准输入流通常指键盘输入,而标准输出流通常指屏幕输出。程序通过将文件或设备与流关联,可以以一致的方式进行读写操作。
使用EOF标记结束输入
在处理文件时,C语言提供了一个特殊的标记——EOF
(End of File)——用于指示文件的结束。当程序读取到文件的末尾时,getchar()
或scanf()
函数将返回EOF
,通常定义为-1
。这个值表示文件已读完,不会有更多数据可供读取。
8.3.2 文件结尾标记
操作系统通过不同的方法来检测文件的结束。例如,一些旧系统在文件末尾使用特殊的控制字符(如Ctrl+Z