C++编程学习:输入输出、字符串与类型转换
需积分: 3 91 浏览量
更新于2024-09-08
收藏 19KB DOCX 举报
"C++学习笔记,涵盖C++的基础知识,如输入输出函数、浮点数表示、类型转换、字符串处理、输入输出流的使用及差异、以及共用体的介绍。"
C++作为一门强大的编程语言,兼容了C语言的部分特性。在C++中,可以使用C语言的标准输入输出函数,如`printf`和`scanf`,通过包含`stdio.h`头文件即可。同时,C++提供了自己的IO流库,如`#include <iostream>`,并推荐使用`using namespace std;`来简化代码。
在输入输出方面,`endl`和`\n`两者都能实现换行,但`endl`除了换行外,还会确保输出缓冲区被刷新,即时显示在屏幕上。而`\n`并不保证这一点,因此在某些系统中,数据可能不会立即显示。`Float`类型的精度限制意味着它只能精确显示大约6或7位小数,对第23位的修改可能不会反映在显示结果中。
强制类型转换是C++中的一种重要机制,它不会改变原始变量,而是创建一个新的具有指定类型的值。例如,`(int)3.14`会将浮点数转换为整数,但不会影响原来的`3.14`。
C-风格字符串以空字符`\0`作为结束标志。在分配字符串数组时,别忘了为这个空字符留出空间。计算字符串长度时不包括这个结束符。`'\0'`不同于空格`' '`,它们是两种不同的字符。
在处理输入时,`cin`会忽略空格和换行符,但`cin.get(ch)`可以直接读取空格。`cin.get(void)`返回一个`int`类型,用于读取字符,包括换行符。换行符`'\n'`和回车符`\r`在ASCII码中是不同的,回车通常在文本编辑器中表现为光标回到行首,而换行则使光标下移一行。
在处理输入流时,`cin.get()`和`cin.getline()`有显著区别。`cin.get()`会保留换行符在输入流中,可能导致后续读取问题,而`cin.getline()`会删除换行符。连续调用`cin.get(name, size)`时,应避免因遗留的换行符导致的问题,可以使用`cin.get()`来清除它。
C++的`string`类提供了一种更便捷的方式来处理字符串,它可以方便地进行赋值和操作。与字符数组不同,未赋值的`string`对象使用`strlen`函数计算长度时,会正确返回空字符串的长度,而未初始化的字符数组可能会有未定义的行为。
最后,C++中的共用体(union)是一种特殊的内存结构,它允许在一个内存区域存储不同类型的数据。这在节省内存和处理多种数据类型时非常有用,但需要注意的是,当共用体中一个成员被赋值后,其他成员的数据可能被覆盖,因为它们共享相同的内存空间。
以上就是C++学习笔记中关于输入输出、类型转换、字符串处理和共用体等关键概念的简要概述。这些知识点对于理解和使用C++编程至关重要。