C++编程:格式化输入输出与命名空间解析

需积分: 9 0 下载量 79 浏览量 更新于2024-08-19 收藏 441KB PPT 举报
"C++基础知识,包括格式化输入输出和C++语言特性" C++作为一种强大的编程语言,由Bjarne Stroustrup在80年代于贝尔实验室开发,它在C语言的基础上增加了许多特性,如面向对象编程、泛型编程、异常处理以及运算符重载。C++对类型的检查更为严格,这使得它更安全,但也要求程序员有更高的编程规范。 在C++中,格式化输入输出是程序设计的重要部分。以下是一些关键的格式控制标志: 1. `skipws`:在输入时自动跳过前导的空白字符,如空格、制表符等。 2. `left`:使输出左对齐,填充空格以达到指定宽度。 3. `right`:使输出右对齐,左侧填充空格以达到指定宽度。 4. `internal`:在指定位置填充空格,通常用于数值的对齐。 5. `boolalpha`:在输出布尔值时,使用"true"和"false"而非"1"和"0"。 6. `dec`:设置输出为十进制形式。 7. `hex`:设置输出为十六进制形式。 8. `oct`:设置输出为八进制形式。 9. `scientific`:使用科学记数法表示数字。 10. `fixed`:将数字以固定小数位数的形式输出。 C++之父Bjarne Stroustrup给出的C程序员转向C++的建议包括: - 尽量避免使用宏,而是使用`const`或`enum`定义常量,用`inline`函数提高效率,利用模板实现函数或类型的泛化,使用命名空间解决命名冲突。 - 声明变量时应立即初始化,减少未初始化变量可能导致的问题。 - 避免使用`malloc`,优先使用`new`运算符进行动态内存分配。 - 减少对`void*`、指针算术、联合和强制类型转换的使用,这些往往暗示着潜在的设计问题。 - 使用标准库中的`std::string`和`std::vector`替代C风格的数组和字符串,以获得更强大且安全的容器。 - 将程序设计为由类和对象表示的概念集合,而非单纯的数据结构和操作。 C++与C的区别还体现在: - 编译器通常使用`g++`,源文件扩展名可以是`.cpp`, `.cc`, `.C`, 或 `.cxx`。 - C++推荐使用`<cxxyx>`形式的头文件,如`<iostream>`,而避免使用C风格的`#include "stdio.h"`。 - 输入输出流由`cin`和`cout`替代了`scanf`和`printf`,并且`iostream`库(旧版本中可能是`iostream.h`)是标准选择。 - C++的标准头文件不再包含`.h`后缀。 命名空间是C++中解决命名冲突的一个重要工具,它允许程序员将相关的一组标识符组织在一起。可以使用`namespace name { ... }`来定义命名空间,成员通过`namespace-name::member-name`访问。引入其他命名空间的成员通常通过`using namespace name;`语句实现,但应谨慎使用,以防止全局作用域的污染。命名空间本身就是一个作用域,有助于捕获编程错误,特别是在大型项目中,防止因重名导致的混淆。