C++编程:非十进制数的输入注意事项

需积分: 14 0 下载量 2 浏览量 更新于2024-07-14 收藏 8.66MB PPT 举报
"C++面向对象程序设计中的非十进制数输入注意事项" 在C++编程中,使用非十进制数(例如八进制或十六进制)进行输入时,有一些重要的规则和特点需要理解: 1. **适用范围**: - 八进制和十六进制数的输入只适用于整型变量(如`int`),不适用于字符型变量(如`char`)和实型变量(如`float`,`double`)。这是因为字符型变量通常用于存储ASCII码,而实型变量则处理浮点数值,它们不直接支持非十进制基数的表示。 2. **基数持续性**: - 在C++的`std::cin`输入流中,一旦指定了输入的基数(如使用`oct`或`hex`指示八进制或十六进制),该基数将持续有效,直到遇到另一个指定基数的指令。这意味着如果在输入一个八进制数后,紧接着输入另一个整数,它也会默认按照之前设定的基数进行解析,除非明确改变基数指示。 例如,在下面的代码中: ```cpp #include <iostream> int main() { int a, b; std::cin >> oct >> a >> b; // 先输入八进制数a,然后输入八进制数b // 如果用户输入的是010 和 15,则a会被解析为8(十进制),b会被解析为13(十进制) return 0; } ``` 在这个例子中,即使用户可能希望`b`是一个十进制数,但因为之前的基数指示,`b`会被解析为八进制数15,等同于十进制的13。 3. **C++语言历史**: - C++是基于C语言发展而来的,由Dennis Ritchie和Brian Kernighan在1972年设计的C语言基础上进一步完善和扩展。C++引入了面向对象的概念,增强了类型安全性和模板等特性,同时保持了C语言的效率和灵活性。 4. **C语言特点**: - 结构化:C语言是一种结构化编程语言,它的设计鼓励模块化和分层的程序设计,有助于提高代码的可读性和维护性。 - 高级与低级的结合:C语言拥有丰富的运算符,包括位运算,这使得它能够进行低级别的内存操作,同时也具有高级语言的抽象能力。 - 可移植性:C语言编写的程序可以轻松移植到不同的平台,因为其编译器可以在多种计算机架构上实现。 - 语法灵活性:虽然这使得C语言对程序员有较高的要求,但它也为熟练的程序员提供了编写高效代码的工具。 5. **学习挑战**: - 对于初学者来说,C++(以及C语言)的语法结构相对宽松,这意味着学习曲线可能较为陡峭。程序调试可能比较困难,因为编译时可能不会暴露所有错误,而是在运行时才会出现。然而,深入理解C++的语法规则和编程原则将有助于编写出高质量、高效且可维护的代码。 在实际编程中,正确理解和使用非十进制数的输入是确保程序正确性的重要方面,尤其是在处理用户输入或者从文件中读取数据时。了解这些要点能够帮助开发者避免常见的陷阱,编写出更加健壮的C++程序。