C++中的细节
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++中的细节
曹晓夏
常量和变量
常量
常量是在程序中不能改变的量
C++中通过const定义常量
const int n =10; //chapter0405Example01
常量的类型
整型常量 浮点型常量 字符型常量
常用的特殊字符
名字 空字符 null 换页 退格 水平制表 符号 \0 \f \b \t 换行 回车 响铃 垂直制表 名字 符号 \n \r \a \v
反斜线
单引号
\\
\’
问好
双引号
\?
\”
变量
变量就是值可变的量; 变量的定义和声明;
输出 输入
数据的输入和输出
输出
C++定义了运算符<<,用于处理内部类型的输 出;
C++提供了一些操纵符,可以直接嵌入到输入/输出 语句来实现格式控制
一旦使用了进制操纵符,该操纵符的作用域一直持续到程 序结束,或者遇到另一个进制操纵符; setw 操纵符只对紧跟着他的数值有效。如果要为多个数值 设定宽度,必须多次使用setw操纵符;// chapter0405example03 一旦使用了setprecision操纵符,该操纵符的作用域一直持 续到程序的结束,或者遇到另一个setprecision操纵符。 使用cin输入一个字符串时,其中不能含有空格,否则,cin 认为输入结束;//chapter0405example04 可以使用cin的成员函数getline来接收含有空格的字符串, 其使用格式为:cin.getline(str,len);其中,len指出输入的最 多字符个数。
一元强制类型转换运算符
static_cast<double>(total)——显式转换
total是整型数 强制类型转换运算符生成一个临时的浮点数值,他 是括号中操作数total的浮点数副本; 存储在total中的值仍是一个整数;
为了保证操作数是类型相同的,编译器对所选 的操作数进行了一种称为升级(promotion)的操 作——隐式转换(implicit conversion)
关于整数除法和截尾的说明
两个整型数相除即为整数除法——计算结 果中的小数部分都将被丢弃,即截尾来自百度文库(truncated)
计算器控制的循环 标记控制的循环
循环的控制
计数器控制的循环
将计数器控制的循环称为定数循环
在循环开始执行之前,循环的次数是已知 的;//chapter0405Example5
continue语句在while、for或者do…while语 句中执行时,使程序跳过循环体内剩下的 语句,继续进行循环体的下一次迭代; 在while 和do…while语句中,循环继续条 件的测试在continue语句执行之后马上进行; 在for语句中,则执行增值标的是,然后对 循环继续条件进行测试;
格式化为八进制数值
设置flag中指定的标志位 清除flag中指定的标志位 设置跳过输入中的前导空白字符 设置输入数据字段宽度为width 设置浮点数精度位数 设置ch为填充字符
endl
ends flush
输出一个换行符并刷新流
输出一个空字符’\0’以结束字符串 强制刷新流
浮点数的精度 浮点数的格式化 类型相容
标记控制的循环
利用一种称为标记值的特殊值,指示数据 输入结束; 标记控制的循环常常成为不定数循环,循 环次数在循环开始执行之前是未知的; 所选取的标记值必然不能与可接受的输入 值混淆;//Chapter0405Example6
break 和continue语句
break 语句在while、for、do while 或者 switch语句中执行时,立刻使程序控制退出 这些语句; 程序继续执行这些语句之后的第一条语句; break语句的常见用法是提前离开循环或跳 过switch语句的剩余部分; //chapter0405Example07
在使用setprecision和setw操纵符时应在程序开 头包含iomanip.h
操纵符
dec hex
功能
格式化为十进制数值 格式化为十六进制数值
oct
setiosflags(long flag) resetiosflags(long flag) ws setw(int width) setprecision(int num) setfill(int ch)
数据的类型
浮点数的精度和存储空间要求
float 类型的变量代表单精度浮点数,具有6位有 效数字; 浮点数float类型的变量的存储空间为4字节; double类型的变量代表双精度浮点数,具有15位 有效数字; 双精度数double类型的变量的存储空间为8字节;
浮点数的格式化
基本数据类型之间显式的和隐式的转化
曹晓夏
常量和变量
常量
常量是在程序中不能改变的量
C++中通过const定义常量
const int n =10; //chapter0405Example01
常量的类型
整型常量 浮点型常量 字符型常量
常用的特殊字符
名字 空字符 null 换页 退格 水平制表 符号 \0 \f \b \t 换行 回车 响铃 垂直制表 名字 符号 \n \r \a \v
反斜线
单引号
\\
\’
问好
双引号
\?
\”
变量
变量就是值可变的量; 变量的定义和声明;
输出 输入
数据的输入和输出
输出
C++定义了运算符<<,用于处理内部类型的输 出;
C++提供了一些操纵符,可以直接嵌入到输入/输出 语句来实现格式控制
一旦使用了进制操纵符,该操纵符的作用域一直持续到程 序结束,或者遇到另一个进制操纵符; setw 操纵符只对紧跟着他的数值有效。如果要为多个数值 设定宽度,必须多次使用setw操纵符;// chapter0405example03 一旦使用了setprecision操纵符,该操纵符的作用域一直持 续到程序的结束,或者遇到另一个setprecision操纵符。 使用cin输入一个字符串时,其中不能含有空格,否则,cin 认为输入结束;//chapter0405example04 可以使用cin的成员函数getline来接收含有空格的字符串, 其使用格式为:cin.getline(str,len);其中,len指出输入的最 多字符个数。
一元强制类型转换运算符
static_cast<double>(total)——显式转换
total是整型数 强制类型转换运算符生成一个临时的浮点数值,他 是括号中操作数total的浮点数副本; 存储在total中的值仍是一个整数;
为了保证操作数是类型相同的,编译器对所选 的操作数进行了一种称为升级(promotion)的操 作——隐式转换(implicit conversion)
关于整数除法和截尾的说明
两个整型数相除即为整数除法——计算结 果中的小数部分都将被丢弃,即截尾来自百度文库(truncated)
计算器控制的循环 标记控制的循环
循环的控制
计数器控制的循环
将计数器控制的循环称为定数循环
在循环开始执行之前,循环的次数是已知 的;//chapter0405Example5
continue语句在while、for或者do…while语 句中执行时,使程序跳过循环体内剩下的 语句,继续进行循环体的下一次迭代; 在while 和do…while语句中,循环继续条 件的测试在continue语句执行之后马上进行; 在for语句中,则执行增值标的是,然后对 循环继续条件进行测试;
格式化为八进制数值
设置flag中指定的标志位 清除flag中指定的标志位 设置跳过输入中的前导空白字符 设置输入数据字段宽度为width 设置浮点数精度位数 设置ch为填充字符
endl
ends flush
输出一个换行符并刷新流
输出一个空字符’\0’以结束字符串 强制刷新流
浮点数的精度 浮点数的格式化 类型相容
标记控制的循环
利用一种称为标记值的特殊值,指示数据 输入结束; 标记控制的循环常常成为不定数循环,循 环次数在循环开始执行之前是未知的; 所选取的标记值必然不能与可接受的输入 值混淆;//Chapter0405Example6
break 和continue语句
break 语句在while、for、do while 或者 switch语句中执行时,立刻使程序控制退出 这些语句; 程序继续执行这些语句之后的第一条语句; break语句的常见用法是提前离开循环或跳 过switch语句的剩余部分; //chapter0405Example07
在使用setprecision和setw操纵符时应在程序开 头包含iomanip.h
操纵符
dec hex
功能
格式化为十进制数值 格式化为十六进制数值
oct
setiosflags(long flag) resetiosflags(long flag) ws setw(int width) setprecision(int num) setfill(int ch)
数据的类型
浮点数的精度和存储空间要求
float 类型的变量代表单精度浮点数,具有6位有 效数字; 浮点数float类型的变量的存储空间为4字节; double类型的变量代表双精度浮点数,具有15位 有效数字; 双精度数double类型的变量的存储空间为8字节;
浮点数的格式化
基本数据类型之间显式的和隐式的转化