Skip to Content
C++程序设计:原理与实践(基础篇)(原书第2版)
book

C++程序设计:原理与实践(基础篇)(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
Pearson
Content preview from C++程序设计:原理与实践(基础篇)(原书第2版)

10.7.2 将人机对话从函数中分离

现在的get_int()函数中还是混合着读取输入的代码和输出提示信息的代码。对于一个简单程序来说,这可能没有什么问题。但在一个大型程序中,我们可能想要对用户输出不同的提示信息。例如,我们可能想要这样来调用get_int():

一种可能的实现如下:

生成任意提示信息是很困难的,所以我们采取了“固定风格”式的处理方式。这种处理方法可以生成任意可变的提示信息,比如支持很多自然语言(如阿拉伯语、孟加拉语、中文、丹麦语、英文以及法文),因此通常情况下是被人们所接受的。但对于初学者来说,这些都是超出学习范围的内容。

需要注意的是,我们的解决方案仍是不完整的:不进行范围检查的get_int()版本仍然会“信口胡言”。这里所体现出的深层次的问题是:“工具函数”会在程序中很多地方被调用,因此不应该将提示信息“硬编码”到函数中。更进一步,库函数会在很多程序中被使用,也不应该向用户输出任何信息——毕竟,编写库的程序员甚至可能不知道使用库函数的程序所运行的计算机是否有人在操作,因此在库函数中输出信息有可能毫无意义。这也是为什么我们的error()函数并没有输出任何错误信息(参见5.6.3节),因为一般来说,我们无法知道向何处输出。

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey
Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉

Publisher Resources

ISBN: 9787111562252