1. 首页
  2. 编程语言
  3. C++ 
  4. 第二版

第二版

上传者: 2024-07-23 23:09:31上传 PDF文件 14.32MB 热度 9次

6.10 输入输出流实例

本节将展示如何处理本章所学内容的一些实例。虽然有许多能够操纵字节的工具(例如 UNIX 中的 sedawk 这样的流编辑器可能是广为人知的,还有文本编辑器也属于此类),但它们通常都有一些限制。sed 和 awk 可能较慢,而且仅能处理向前序列里的行。文本编辑器通常需要人的交互作用或至少要学一种专有的宏语言。

用输入输出流编写的程序则没有任何此类限制:这些程序运行快速、可移植而且很灵活。输入输出流是工具箱中非常有用的一个工具。

6.10.1 代码生成

第一个例子涉及程序的生成,巧合的是,这个程序也符合本书的格式。在开发代码时,保持快速和连贯性是关键。第一个程序建立一个文件保存 main()(假定它带有非命令行参数并且使用输入输出流库):这个文件被打开,使用 ios::noreplace,以确保不会偶然地覆盖一个现有文件。然后用命令行中的参数来创建一个 istream。这样,字符每次一个地被提取。利用标准 C 库宏 toupper(),这些字符可被转变成大写字母。这个变量返回一个 int,因此它必须显式地转换为 char。这个名字用在头一行里,接着生成文件的其余部分。

  1. 维护类库资源

第二个例子执行了一个更复杂且更有用的任务。建立一个类时,要考虑库术语。有关sed和awk的更多实例,你可以参考这篇文章,它详细介绍了如何在实际项目中使用这些工具。如果你想更深入地了解,可以参考实践大师UNIX awk和sed编程篇,这篇教程提供了更系统的讲解。

这些例子展示了如何灵活运用输入输出流,使程序既高效又便于移植。不需要担心 sed 和 awk 的局限性,你可以编写自己的工具来满足特定需求。试试看,或许你会发现一个新的编程世界!

用户评论