01-字符输入、输出和输入验证
第8章 字符输入/输出和输入验证
本章介绍以下内容:
- 更详细地介绍输入、输出以及缓冲输入和无缓冲输入的区别;
- 如何通过键盘模拟文件结尾条件;
- 如何使用重定向把程序和文件相连接;
- 创建更友好的用户界面。
在涉及计算机的话题时,我们经常会提到输入(input)和输出(output)。我们谈论输入和输出设备(如键盘、U盘、扫描仪和激光打印机),讲解如何处理输入数据和输出数据,讨论执行输入和输出任务的函数。本章主要介绍用于输入和输出的函数(简称I/O函数)。
I/O函数(如 printf() 、 scanf() 、 getchar() 、 putchar() 等)负责把信息传送到程序中。前几章简单介绍过这些函数,本章将详细介绍它们的基本概念。同时,还会介绍如何设计与用户交互的界面。
最初,输入/输出函数不是C定义的一部分,C把开发这些函数的任务留给编译器的实现者来完成。在实际应用中,UNIX系统中的C实现为这些函数提供了一个模型。ANSI C库吸取成功的经验,把大量的UNIX I/O函数囊括其中,包括一些我们曾经用过的。由于必须保证这些标准函数在不同的计算机环境中能正常工作,所以它们很少使用某些特殊系统才有的特性。因此,许多C供应商会利用硬件的特性,额外提供一些I/O函数。其他函数或函数系列需要特殊的操作系统支持,如Windows或Macintosh OS提供的特殊图形界面。这些有针对性、非标准的函数让程序员能更有效地使用特定计算机编写程序。本章只着重讲解所有系统都通用的标准I/O函数,用这些函数编写的可移植程序很容易从一个系统移植到另一个系统。处理文件输入/输出的程序也可以使用这些函数。
许多程序都有输入验证,即判断用户的输入是否与程序期望的输入匹配。本章将演示一些与输入验证相关的问题和解决方案。