在本章中您将学习下列内容:
● 有关输入、输出以及缓沖和非缓沖输入之间的区别的更多内容。
● 从键盘模拟文件结尾条件的方法。
● 如何重定向将您的程序与文件相连接。
● 使用户界面更加友好。

在计算机世界中,我们在很多场合下都使用词语输入(input)和输出(output)。例如,在讲输入和输出设备(如键盘、磁盘驱动器和激光打印机等)时,在指用于输入和输出的数据时,以及在指执行输入和输出任务的函数时。本章集中讨论用于输入和输出(简称为I/O)的函数。

I/O函数将信息传输至您的程序并从您的程序中传出信息;printf()、scanf()、getchar()和putchar()就是这样的例子。您已经在前面的章节中见过这些函数,现在您将了解到它们的基础概念。同时,您还将看到改进程序用户界面的方法。

最初,输入/输出函数并不是C定义的一部分。输入输出的开发是留给C实现来完成的。在实践中,C的Unix实现已经作为这些函数的一个模型。认可过去惯例的ANSI C库中包含大量这些Unix的I/O函数,其中包括我们已经使用过的那些。因为这样的标准函数必须在很多种类的计算机环境中工作,所以这些函数很少利用某个特定系统的特殊性能。因此,许多C供应商提供其他I/O函数,这些函数利用了一些特殊的性能,例如Intel微处理器的I/O端口或Macintosh的ROM例程。还有一些C供应商提供的函数或函数系列涉及到具体的操作系统,这些操作系统支持特定的图形界面(例如由Windows或Macintosh OS提供的图形界面)之类的特性。这些专门的、非标准的函数使您能够书写出更有效使用特定计算机的程序。不幸的是,这些函数通常不能在其他计算机系统上使用。因此,我们将集中讨论所有系统上都可用的标准I/O函数,因为这些函数可使您编写可移植的程序,这些程序易于从一个系统移植至另一个系统。这些函数还对使用文件进行输入和输出的程序普遍适用。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

许多程序面临的一个重要任务是确认输入;也就是说,确定用户的输入是否与程序所希望的输入相匹配。本章阐明了与输入确认相关的一些问题及其解决方案。