本书采用结构化、循序渐进方法讲解编程基本原理。基于较早培养良好习惯的原则,本书通过强调结构化编程原则和软件工程原理介绍了计算机科学知识。本书所有完整的程序都采用连贯的风格,作者详细分析了这些程序,深入解释了编程风格和标准,在介绍具体的C++语言实现之前,通常都会总结相关的原理和原则,便于读者理解和掌握核心概念。
网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | 计算机科学--C++软件工程方法(第2版国外计算机科学经典教材) |
分类 | |
作者 | (美)弗罗占//(美)吉尔博格 |
出版社 | 清华大学出版社 |
下载 | ![]() |
简介 | 编辑推荐 本书采用结构化、循序渐进方法讲解编程基本原理。基于较早培养良好习惯的原则,本书通过强调结构化编程原则和软件工程原理介绍了计算机科学知识。本书所有完整的程序都采用连贯的风格,作者详细分析了这些程序,深入解释了编程风格和标准,在介绍具体的C++语言实现之前,通常都会总结相关的原理和原则,便于读者理解和掌握核心概念。 内容推荐 本书采用结构化、循序渐进方法讲解编程基本原理。基于较早培养良好习惯的原则,本书通过强调结构化编程原则和软件工程原理介绍了计算机科学知识。本书所有完整的程序都采用连贯的风格,作者详细分析了这些程序,深入解释了编程风格和标准,在介绍具体的C++语言实现之前,通常都会总结相关的原理和原则,便于读者理解和掌握核心概念。 本书特色 扩展了对类的介绍,安排整章内容介绍模板、继承和异常处理 重新编写了书中的程序,反映了C++的风格和功能 增加了对字符串的介绍,反映了最新的ISO字符串类 大量练习题为学生提供了练习编程的机会 配套网站提供源代码下载:http://compsci.brookscole.com 目录 第1章 计算机导论 1 1.1 计算机系统 1 1.2 计算机硬件 1 1.3 计算机软件 2 1.3.1 系统软件 2 1.3.2 应用软件 3 1.4 计算环境 3 1.4.1 个人计算环境 3 1.4.2 分时环境 4 1.4.3 客户机/服务器环境 4 1.4.4 分布式计算 4 1.5 计算机语言 5 1.5.1 机器语言 5 1.5.2 符号语言 6 1.5.3 高级语言 7 1.5.4 自然语言 7 1.6 编写、编辑、编译和连接程序 8 1.6.1 编写和编辑程序 8 1.6.2 编译程序 8 1.6.3 连接程序 8 1.7 程序的执行 9 1.8 系统开发 9 1.8.1 系统开发生存周期 10 1.8.2 程序开发 10 1.9 软件工程和编程风格 14 1.10 要点和常见的编程错误 15 1.11 练习题 16 1.11.1 复习题 16 1.11.2 练习 17 第2章 C++语言简介 18 2.1 背景知识 18 2.2 C++程序 19 2.2.1 C++程序的结构 19 2.2.2 一个简单的程序 19 2.2.3 第一个程序 20 2.2.4 注释 22 2.3 标识符 23 2.4 数据类型 24 2.4.1 空型数据 25 2.4.2 整型数据 25 2.4.3 字符型数据 26 2.4.4 浮点型数据 26 2.4.5 C++中的逻辑数据 27 2.5 变量 28 2.5.1 变量声明和定义 28 2.5.2 变量初始化 29 2.6 常量 30 2.6.1 整型常量 30 2.6.2 浮点常量 31 2.6.3 字符常量 31 2.6.4 字符串常量 32 2.6.5 布尔常量 32 2.7 编码常量 33 2.7.1 字面量常量 33 2.7.2 定义常量 33 2.7.3 内存常量 33 2.7.4 小结 34 2.8 读写数据 34 2.8.1 数据源和目标 35 2.8.2 标准流 35 2.8.3 往标准输出中写数据(cout) 36 2.8.4 写入错误(cerr和clog) 37 2.8.5 格式化输出 37 2.8.6 从标准输入中读数据(cin) 45 2.9 编程举例 46 2.9.1 打印“Nothing!” 46 2.9.2 打印字符值 47 2.9.3 计算面积和周长 48 2.10 软件工程和编程风格 50 2.10.1 程序文档 50 2.10.2 数据名称 51 2.10.3 数据隐匿 52 2.11 提示和常见的编程错误 53 2.12 练习题 53 2.12.1 复习题 53 2.12.2 练习 54 2.12.3 项目 55 第3章 C++程序的结构 57 3.1 表达式 57 3.1.1 基本表达式 58 3.1.2 二元表达式 59 3.1.3 赋值表达式 61 3.1.4 后缀表达式 63 3.1.5 一元表达式 64 3.2 优先级和结合性 66 3.2.1 优先级 67 3.2.2 结合性 68 3.3 副作用 69 3.4 表达式求值 70 3.4.1 没有副作用的表达式 70 3.4.2 有副作用的表达式 70 3.4.3 警告 72 3.5 混合型表达式 72 3.5.1 隐式类型转换 73 3.5.2 显式类型转换(强制转换) 74 3.6 语句 76 3.6.1 表达式语句 76 3.6.2 复合语句 77 3.6.3 语句和定义常量 77 3.7 示例程序 78 3.7.1 示例:计算商和余数 78 3.7.2 示例:显示整数右边的数字 79 3.7.3 示例:计算平均数 79 3.7.4 示例:把弧度转换为角度 80 3.7.5 示例:将华氏温度转换为 摄氏温度 81 3.7.6 示例:计算销售总额 82 3.7.7 示例:计算学生分数 83 3.8 软件工程和编程风格 85 3.8.1 KISS 86 3.8.2 括弧 86 3.8.3 用户通信 86 3.9 提示与常见的编程错误 87 3.10 练习题 88 3.10.1 复习题 88 3.10.2 练习 89 3.10.3 项目 90 第4章 函数 92 4.1 设计结构化程序 92 4.2 C++中的函数 93 4.3 用户定义函数 95 4.3.1 没有参数的void函数 95 4.3.2 带有参数的void函数 96 4.3.3 返回值的函数 97 4.3.4 函数定义 99 4.3.5 原型声明 100 4.3.6 函数调用 101 4.3.7 函数示例 102 4.3.8 参数传递 107 4.4 默认参数变元 112 4.5 标准库函数 113 4.5.1 用于数学运算的标准函数 113 4.5.2 一般库函数 115 4.5.3 换算随机数字 117 4.6 作用域 119 4.6.1 一般规则 119 4.6.2 全局作用域 119 4. 6.3 局部作用域 120 4.7 编程示例——计算器程序 121 4.8 软件工程和编程风格 122 4.8.1 结构图 122 4.8.2 结构图规则和符号 123 4.8.3 函数内聚性 125 4.8.4 自上至下的开发 126 4.9 提示和常见的编程错误 128 4.10 练习题 129 4.10.1 复习题 129 4.10.2 练习 130 4.10.3 项目 131 第5章 选择——决策 134 5.1 逻辑数据和操作符 134 5.1.1 C++中的逻辑数据 134 5.1.2 逻辑操作符 134 5.1.3 逻辑表达式求值 136 5.1.4 关系操作符 138 5.2 双向选择 139 5.2.1 if...else语句 140 5.2.2 无效的else语句 141 5.2.3 嵌套if语句 142 5.2.4 悬挂else问题 143 5.2.5 简化if语句 144 5.2.6 条件表达式 145 5.2.7 处理主要错误 146 5.2.8 双向选择示例 147 5.3 多向选择 151 5.3.1 switch语句 151 5.3.2 else-if语句 156 5.4 其他标准库函数 157 5.5 菜单程序 159 5.6 软件工程和编程风格 162 5.6.1 从属语句 162 5.6.2 否定逻辑 163 5.6.3 选择语句规则 163 5.6.4 结构图中的选择 164 5.7 提示及常见的编程错误 165 5.8 练习题 166 5.8.1 复习题 166 5.8.2 练习 167 5.8.3 项目 169 第6章 循环 173 6.1 循环的概念 173 6.2 前测型循环与后测型循环 173 6.3 初始化与更新 175 6.3.1 循环初始化 175 6.3.2 循环更新 175 6.4 事件控制循环与计数器控制循环 175 6.4.1 事件控制循环 176 6.4.2 计数器控制循环 176 6.4.3 循环对比 177 6.5 C++中的循环 177 6.5.1 while循环 177 6.5.2 for循环 181 6.5.3 do...while循环 184 6.5.4 逗号表达式 186 6.6 循环示例 188 6.6.1 for循环 188 6.6.2 while循环 193 6.6.3 do...while循环 194 6.7 与循环相关的其他语句 197 6.7.1 break语句 197 6.7.2 continue语句 198 6.8 循环应用 200 6.8.1 求和 200 6.8.2 求积 201 6.8.3 最小数与最大数 201 6.8.4 查询 202 6.9 递归 203 6.9.1 迭代定义 203 6.9.2 递归定义 204 6.9.3 阶乘——迭代的解决方法 204 6.9.4 阶乘——递归的解决方法 205 6.9.5 设计递归函数 205 6.9.6 Fibonacci数字 206 6.9.7 递归的限制 208 6.9.8 河内塔 209 6.9.9 河内塔递归解决方法 209 6.10 编程示例——计算器程序 212 6.11 软件工程与编程风格 214 6.11.1 结构图中的循环 214 6.11.2 确定算法的效率 215 6.11.3 线性循环 215 6.11.4 对数循环 216 6.11.5 嵌套循环 216 6.11.6 效率的标准度量 219 6.12 提示与常见的编程错误 219 6.13 练习题 220 6.13.1 复习题 220 6.13.2 练习 222 6.13.3 项目 224 第7章 文本I/O 228 7.1 输入实体和输出实体 228 7.1.1 文件 228 7.1.2 标准输入 229 7.1.3 标准输出 229 7.1.4 标准错误 229 7.2 流 229 7.2.1 创建流与连接流 230 7.2.2 标准流 230 7.2.3 文件流 231 7.3 标准库输入/输出函数 231 7.4 格式化输入与格式化输出 234 7.4.1 输入输出操作符 234 7.4.2 格式化数据 235 7.4.3 小结 244 7.5 文件示例 245 7.6 字符输入/输出函数 248 7.6.1 get 248 7.6.2 put 248 7.7 字符输入/输出示例 249 7.7.1 创建文本文件 249 7.7.2 复制文本文件 249 7.7.3 计算字符和行数 250 7.7.4 计算文件中的字数 251 7.8 检测文件错误 253 7.8.1 流状态 253 7.8.2 错误恢复 255 7.9 软件工程与编程风格 257 7.10 提示与常见的编程错误 260 7.11 练习题 260 7.11.1 复习题 260 7.11.2 练习 261 7.11.3 项目 262 第8章 数组 264 8.1 概念 264 8.2 在C++中使用数组 266 8.2.1 声明和定义 266 8.2.2 在数组中存取元素 267 8.2.3 在数组中存储值 267 8.2.4 索引操作符的优先级 270 8.2.5 索引范围检查 270 8.3 数组和函数 273 8.3.1 传递个体元素 273 8.3.2 传递整个数组 274 8.4 数组应用 275 8.4.1 频率数组 275 8.4.2 直方图 276 8.4.3 随机数序列 279 8.5 排序 281 8.5.1 选择排序法 282 8.5.2 选择排序算法 282 8.5.3 上推(冒泡)排序法 283 8.5.4 上推(冒泡)排序算法 284 8.5.5 插入排序法 285 8.5.6 插入排序算法 285 8.5.7 重新编写的插入排序法 287 8.5.8 排序总结 288 8.6 搜索 288 8.6.1 顺序搜索 289 8.6.2 对分搜索 291 8.7 二维数组 293 8.7.1 声明与定义二维数组 294 8.7.2 把二维数组传递到函数 298 8.7.3 数组示例 299 8.8 多维数组 301 8.9 编程示例——计算行和列的平均数 302 8.10 软件工程与编程风格 304 8.10.1 测试排序 305 8.10.2 测试搜索 305 8.10.3 分析排序算法 305 8.10.4 分析搜索算法 307 8.11 提示和常见的编程错误 308 8.12 练习题 309 8.12.1 复习题 309 8.12.2 练习 310 8.12.3 项目 311 第9章 指针 315 9.1 概念 315 9.1.1 指针常量 315 9.1.2 指针值 316 9.2 指针变量 318 9.3 通过指针存取变量 318 9.4 指针声明和定义 320 9.5 指针变量的初始化 321 9.5.1 示例:指针游戏 322 9.5.2 示例:添加两个数字 323 9.5.3 示例:指针弹性 324 9.5.4 示例:一个变量的多个指针 324 9.6 指针和函数 325 9.6.1 作为形参的指针 325 9.6.2 返回指针函数 326 9.7 指针的指针 327 9.8 兼容性 329 9.8.1 兼容性和void指针 330 9.8.2 强制转换指针 330 9.9 读写指针值 331 9.10 左值和右值 332 9.11 指针应用 334 9.11.1 把秒转换为小时 334 9.11.2 二次方程 335 9.12 数组和指针 339 9.13 指针运算和数组 341 9.13.1 指针和一维数组 341 9.13.2 指针和其他操作符 343 9.13.2 指针和二维数组 344 9.14 把数组传递给函数 345 9.15 内存配置函数 347 9.16 指针数组 353 9.17 编写应用 354 9.17.1 再研究选择排序法 354 9.17.2 动态数组 356 9.18 软件工程和编程格式 360 9.18.1 指针和函数调用 361 9.18.2 指针和数组 361 9.18.3 数组索引交换性 361 9.18.4 动态内存:理论和实践 361 9.19 要点和常见的编程错误 362 9.20 练习题 364 9.20.1 复习题 364 9.20.2 练习 366 9.20.3 项目 371 第10章 类 375 10.1 基本的类概念 375 10.1.1 存取说明符 375 10.1.2 创建类 377 10.2 类对象 380 10.2.1 实例化 380 10.2.2 访问对象成员 380 10.2.3 使用类 381 10.2.4 this指针 384 10.3 管理器函数 384 10.3.1 构造函数 384 10.3.2 复制构造函数 390 10.3.3 析构函数 393 10.4 增变器和存取器 394 10.4.1 增变器函数 394 10.4.2 存取器函数 394 10.5 类常量 394 10.5.1 最大公约数 395 10.5.2 构造函数 395 10.5.3 改变存储函数 396 10.5.4 修订的分数类 397 10.6 复杂的类函数 399 10.6.1 一元类函数 399 10.6.2 二元类函数 401 10.6.3 比较分数 405 10.7 编写应用程序 405 10.7.1 account类 405 10.7.2 time类 407 10.8 软件工程和编程风格 410 10.8.1 UML:类图 410 10.8.2 类之间的关系 411 10.8.3 UML:对象 412 10.9 提示和常见编程错误 413 10.10 练习题 413 10.10.1 复习题 413 10.10.2 练习 414 10.10.3 项目 416 第11章 更多类功能和其他类型 417 11.1 内联函数 417 11.1.1 非成员内联函数 418 11.1.2 内联成员函数 418 11.2 初始化列表 419 11.3 重载 420 11.3.1 操作符重载 420 11.3.2 最终的分数类头文件 425 11.4 静态成员 429 11.4.1 静态数据成员 430 11.4.2 静态函数成员 431 11.4.3 静态成员的示例 431 11.5 友元类 433 11.6 类和指针 433 11.6.1 包含指针的类 433 11.6.2 对象的指针 435 11.7 对象数组 436 11.7.1 对象的初始化 436 11.7.2 访问对象 437 11.8 结构 438 11.8.1 结构应用程序 439 11.8.2 初始化 439 11.8.3 小结 440 11.9 联合 440 11.9.1 引用联合 441 11.9.2 初启程序 441 11.10 枚举类型 442 11.10.1 声明一个枚举类型 442 11.10.2 为枚举类型赋值 443 11.10.3 枚举类型的转换 443 11.10.4 初始化枚举常量 444 11.10.5 匿名的枚举:常量 444 11.11 类型定义(typedef) 445 11.11.1 typedef和移植式程序 445 11.11.2 typedef和数组声明 446 11.12 编写应用程序 446 11.12.1 升降机的设计 446 11.12.2 升降机类 447 11.13 软件工程和编程风格 453 11.13.1 耦合 453 11.13.2 数据隐藏 456 11.13.3 小结 456 11.14 提示和常见的编程错误 456 11.15 练习题 457 11.15.1 复习题 457 11.15.2 练习 458 11.15.3 项目 460 第12章 继承和聚集 462 12.1 继承 462 12.2 私有、保护和公有继承类型 465 12.2.1 私有继承类型 465 12.2.2 保护继承类型 466 12.2.3 公有继承类型 466 12.2.4 继承示例 466 12.2.5 多边形——三角形的实现 466 12.2.6 重写继承访问说明符 470 12.3 继承期间的管理器函数 470 12.3.1 构造函数 470 12.3.2 复制构造函数 471 12.3.3 析构函数 472 12.3.4 员工类示例 472 12.3.5 员工类程序 474 12.4 重写成员函数 475 12.4.1 重写方法示例 475 12.4.2 重写与重载 477 12.5 多态性 477 12.5.1 静态绑定 478 12.5.2 动态绑定和虚函数 479 12.6 纯虚函数:抽象类 481 12.6.1 纯虚函数 481 12.6.2 抽象类 481 12.7 分层类中的类型转换 486 12.7.1 强制转换对象 486 12.7.2 强制转换指向对象的指针 488 12.8 多重继承 489 12.9 聚集 491 12.9.1 示例:学生类 491 12.9.2 聚集与组合 494 12.10 软件工程和编程风格 495 12.10.1 程序设计概念 495 12.10.2 信息隐藏 495 12.10.3 内聚度 495 12.10.4 小结 498 12.11 提示和常见编程错误 498 12.12 练习题 498 12.12.1 复习题 498 12.12.2 练习 500 12.12.3 项目 501 第13章 模板 503 13.1 函数模板 503 13.1.1 模板格式 505 13.1.2 重载函数模板 507 13.1.3 混合参数类型 507 13.1.4 多重通用参数类型 508 13.1.5 函数模板与其他解决方案 510 13.2 类模板 511 13.2.1 类模板的语法 511 13.2.2 定义类 512 13.2.3 对象的实例化 513 13.2.4 数组类 513 13.2.5 专用成员函数 517 13.2.6 类模板继承 517 13.3 软件工程和编程风格 519 13.3.1 原子和复合数据 520 13.3.2 数据结构 520 13.3.3 抽象数据类型 521 13.3.4 抽象数据类型的模型 522 13.3.5 ADT和模板 522 13.4 提示和常见的编程错误 522 13.5 练习题 523 13.5.1 复习题 523 13.5.2 练习 523 13.5.3 项目 524 第14章 字符串 526 14.1 字符串的概念 526 14.1.1 固定长度字符串 526 14.1.2 可变长度字符串 527 14.2 C++字符串 527 14.3 C++字符串输入/输出 529 14.3.1 字符串输出(<<) 529 14.3.2 字符串输入(>>) 530 14.3.3 赋值操作符 532 14.3.4 C++字符串示例 533 14.4 字符串数组 536 14.5 字符串操作函数 536 14.5.1 字符串长度(length和size) 537 14.5.2 字符串比较 537 14.5.3 连接和附加 539 14.5.4 提取子字符串 541 14.5.5 搜索子字符串 542 14.5.6 搜索字符 543 14.5.7 访问和修改字符 546 14.5.8 字符串插入 547 14.5.9 替换字符串 548 14.5.10 删除字符串 549 14.5.11 交换字符串 550 14.5.12 转换为C字符串 551 14.6 程序设计示例:莫尔斯电码 551 14.7 C字符串 557 14.7.1 C字符串的基本概念 557 14.7.2 C字符串输入/输出 558 14.7.3 C字符串函数库 559 14.7.4 把C字符串转换成 C++字符串 562 14.8 C字符串和C++字符串的比较 563 14.9 软件工程和编程风格 563 14.9.1 工资单案例分析 563 14.9.2 程序设计步骤 564 14.9.3 结构图设计 565 14.10 提示和常见的编程错误 568 14.11 练习题 569 14.11.1 复习题 569 14.11.2 练习 570 14.11.3 项目 572 第15章 异常处理 574 15.1 处理错误 574 15.1.1 传统的错误处理 574 15.1.2 使用异常处理机制 575 15.1.3 多重错误 578 15.1.4 通用处理程序 579 15.2 异常处理类 580 15.3 异常规范 583 15.3.1 抛出指定的异常 584 15.3.2 不抛出异常 584 15.3.3 抛出任何异常 585 15.3.4 unexpected异常 585 15.4 类中的异常 585 15.4.1 构造函数中的异常 586 15.4.2 析构函数中的异常 586 15.5 标准异常 587 15.5.1 逻辑错误 588 15.5.2 内存分配故障 589 15.5.3 I/O(文件)异常 589 15.5.4 将新类添加到标准异常类中 590 15.6 软件工程和编程风格 593 15.6.1 修改程序故障 593 15.6.2 人工调试 594 15.6.3 测试驱动程序 596 15.6.4 修改无效输出 596 15.7 提示和常见的编程错误 597 15.8 练习题 597 15.8.1 复习题 597 15.8.2 练习 598 15.8.3 项目 599 第16章 高级I/O概念 600 16.1 输入/输出类 600 16.2 文件状态 601 16.2.1 在读状态下打开文件 602 16.2.2 在写状态下打开文件 602 16.2.3 I/O系统标志符 603 16.2.4 测试文件是否打开 604 16.2.5 打开和重载构造函数 604 16.3 文本文件和二进制文件 605 16.4 文件的标准库函数 605 16.4.1 块输入/输出函数 606 16.4.2 定位函数 609 16.4.3 块I/O示例:附加文件 612 16.5 转换文件类型 613 16.5.1 从文本文件创建二进制文件 614 16.5.2 从二进制文件创建文本文件 616 16.6 字符串流 619 16.6.1 写入字符串 619 16.6.2 读取字符串 620 16.7 文件程序示例 621 16.7.1 随机文件存取 621 16.7.2 合并文件 623 16.8 软件工程和编程风格 626 16.8.1 更新文件 626 16.8.2 顺序文件更新 627 16.8.3 更新程序设计 627 16.8.4 更新错误 628 16.8.5 更新结构图 629 16.8.6 更新逻辑 629 16.8.7 小结 630 16.9 提示和常见的编程错误 630 16.10 练习题 631 16.10.1 复习题 631 16.10.2 练习 632 16.10.3 项目 636 第17章 链表 638 17.1 链表结构 638 17.1.1 节点 638 17.1.2 链表的声明 639 17.1.3 链接列表的顺序 640 17.1.4 指向链表的指针 640 17.2 基本的链表函数 640 17.2.1 添加节点 641 17.2.2 删除节点 644 17.2.3 搜索链表 646 17.2.4 遍历链表 647 17.3 链表设计 649 17.3.1 节点类 649 17.3.2 列表类 649 17.3.3 类的迭代器 654 17.4 编程示例——链表平均值 657 17.4.1 构建链表 658 17.4.2 打印列表 659 17.4.3 打印列表的平均值 660 17.5 软件工程和编程风格 662 17.5.1 质量的定义 662 17.5.2 质量要素 662 17.5.3 质量周期 664 17.5.4 小结 665 17.6 提示和常见的编程错误 665 17.7 练习题 666 17.7.1 复习题 666 17.7.2 练习 667 17.7.3 项目 668 附录A 流程图编制 671 A.1 辅助符号 671 A.1.1 流程线 672 A.1.2 连接符 672 A.2 主要符号 672 A.2.1 顺序语句 672 A.2.2 选择语句 674 A.2.3 循环语句 675 附录B 预处理器指令 678 B.1 文件包含 678 B.2 宏定义 679 B.2.1 简单的命令 679 B.2.2 参数化的宏 680 B.2.3 嵌套的宏 681 B.2.4 宏语句的延续 682 B.2.5 字符串命令(#) 683 B.2.6 合并命令(# #) 683 B.2.7 取消定义命令 683 B.3 条件编译 683 B.3.1 if...else命令 684 B.3.2 有条件多向选择 684 B.3.3 排除代码 685 B.3.4 如果已定义(ifdef/ifndef) 命令 685 B.4 防止重复的库文件包含 686 附录C 与输入输出有关的类 688 C.1 ios类 688 C.1.1 错误状态标志位 688 C.1.2 ios标志位 689 C.1.3 定位标志位 689 C.1.4 格式标志位 689 C.1.5 格式参数 690 C.2 ios的派生类 690 C.2.1 输入流 691 C.2.2 输出流 691 C.3 istream和ostream的派生类 691 C.3.1 输入文件流 691 C.3.2 输入/输出流 692 C.3.3 输出文件流 692 C.3.4 I/O字符串流 692 C.4 iostream的派生类 692 C.4.1 文件流 692 C.4.2 字符串流 692 附录D C语言的I/O 693 D.1 标准库的输入/输出函数 693 D.1.1 C的文件和流 693 D.1.2 文件表 694 D.1.3 标准的C文件 694 D.1.4 用户文件 694 D.2 文件打开和关闭 694 D.2.1 文件打开(fopen) 694 D.2.2 文件模式 695 D.2.3 文件关闭(fclose) 696 D.3 格式化输入/输出函数 696 D.3.1 输入格式化 696 D.3.2 输出格式化 697 D.3.3 格式化字符串 697 D.4 字符输入/输出函数 702 D.4.1 getchar 702 D.4.2 putchar 702 D.4.3 getc和fgetc 703 D.4.4 putc和fputc 703 D.5 字符串输入/输出函数 703 D.5.1 读字符串(gets/fgets) 703 D.5.2 写字符串(puts/fputs) 704 D.6 块输入/输出函数 705 D.6.1 文件读(fread) 705 D.6.2 文件写(fwrite) 706 D.7 文件状态函数 706 D.7.1 测试EOF(feof) 706 D.7.2 测试错误(ferror) 706 D.7.3 清除错误(clearerr) 706 D.8 定位函数 707 D.8.1 当前位置(ftell) 707 D.8.2 设定位置(fseeD) 707 D.9 C的I/O函数汇总 708 附录E 命名空间 709 E.1 背景 709 E.2 使用命名空间的名称 711 E.2.1 全称 711 E.2.2 使用命令 711 E.2.3 使用声明 712 E.2.4 命令和声明之间的区别 712 E.3 声明命名空间 713 E.3.1 声明 714 E.3.2 扩展 714 E.3.3 嵌套 714 E.4 命名空间的类型 716 E.4.1 命名的命名空间 716 E.4.2 全局命名空间 716 E.4.3 未命名的命名空间 716 附录F 标准模板库 718 F.1 容器 718 F.1.1 顺序容器 718 F.1.2 列表 721 F.1.3 关联容器 722 F.2 容器适配器 728 F.2.1 堆栈 728 F.2.2 队列 728 F.2.3 优先队列 729 F.3 迭代器 730 F.3.1 输入迭代器 730 F.3.2 输出迭代器 730 F.3.3 正向迭代器 731 F.3.4 双向迭代器 731 F.3.5 随机存取迭代器 732 F.3.6 层次关系 732 F.3.7 迭代器支持的操作符 733 F.4 通用算法 733 F.5 函数对象 733 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。