C++面向对象编程:输入八进制与十六进制数据

需积分: 13 4 下载量 186 浏览量 更新于2024-08-23 收藏 8.66MB PPT 举报
"输入十六进制或八进制数据-C++面向对象程序设计 谭浩强" 在C++编程中,处理不同的数值基数是常见的需求,特别是在输入和输出数据时。通常,系统默认处理整数输入和输出为十进制形式。然而,有时候我们需要输入或者输出八进制或十六进制的数值。C++通过`std::cin`和`std::cout`流的操纵符来支持这种功能。 当需要按照特定基数读取数据时,可以使用以下操纵符: 1. `std::hex`: 这个操纵符设置输入流的基数为16,允许你输入十六进制数字。例如,如果你输入`0x1A`,`std::cin >> hex >> num`将会把`num`设置为十进制的26,因为`1A`在十六进制中代表26。 2. `std::oct`: 使用这个操纵符,你可以输入八进制数。例如,如果输入`022`,`std::cin >> oct >> num`会将`num`设置为十进制的18,因为`22`在八进制中表示18。 3. `std::dec`: 这是默认的基数操纵符,用于处理十进制数。如果你需要确保之后的输入以十进制处理,可以使用`std::cin >> dec`。 为了正确地处理这些基数,通常需要在输入之前设置基数,然后在处理完特定基数的输入后恢复到默认的十进制基数。这可以通过以下方式实现: ```cpp #include <iostream> int main() { int num; std::cin >> std::hex; // 设置基数为16 std::cin >> num; // 输入十六进制数 std::cout << "十六进制数对应的十进制是: " << num << std::endl; std::cin >> std::dec; // 恢复为十进制 std::cin >> num; // 输入十进制数 std::cout << "十进制数是: " << num << std::endl; return 0; } ``` C++语言的发展历程是丰富的,从早期的BCPL、B语言,到Dennis Ritchie和Brian Kernighan设计的C语言,再到后来的C++,它经历了不断的进化和完善。C++是作为C语言的扩展,引入了类和对象的概念,使得程序设计更加面向对象,支持封装、继承和多态等特性,极大地增强了软件开发的能力和灵活性。 C++语言的特点包括但不限于: 1. 结构化编程:C++支持结构化编程,代码清晰,易于维护。 2. 高级和低级语言特征:它具有丰富的运算符,包括位运算,既可以直接操作内存,也支持抽象的数据结构。 3. 可移植性:C++程序在不同平台间的移植性良好,只需要少量或无需修改。 4. 语法灵活:这使得高级程序员可以编写高效代码,但对初学者来说,理解并避免错误可能更具挑战性。 虽然C++的语法结构相对宽松,允许较大的设计自由度,但这对初学者来说既是优势也是挑战。调试C++程序可能较为复杂,但随着对语言规则的深入理解和实践,编写和调试高质量的C++程序是完全可行的。