C++ Primer Plus 6 笔记(3)
第5章
1.cout在显示bool值之前将它们转换为int,但cout.setf(ios:: boolalpha)函数调用设置了一个标记,该标记命令cout显示true和false,而不是1和0
2.任何表达式加上分号就成为了语句,反之不对,比如返回语句、声明语句、for语句
3.strcmp()函数,#include<cstring>,判断字符串是否相同,接受两个字符串地址作为参数,返回值为第一个字符串字母顺序减第二个字符串字母顺序;
用word==“mate”,word是数组名,判断的是字符串地址是否相同,而非字符串
4.clock()函数程序开始执行后所用的系统时间。头文件#include<ctime>定义了一个符号常量CLOCKS_PER_SEC表示每秒钟包含的系统时间单位数
clock_t为clock()返回类型的别名。clock_t delay = secs * CLOCKS_PER_SEC; clock_t start = clock();
5.创建类型别名,在声明前面加上typedef,通用格式为typedef typeName aliasName;
6.do-while测试,例如请求用户输入,程序必须先获得输入,然后对它进行测试
7.cin输入字符忽略空格、换行符,用户按下回车键后,输入的内容才会发给程序。
cin.get(ch)不会忽略空格、换行符;但有两种用法,一种为cin.get(name,Arsize),其中name为数组地址,Arsize为个数;另一种为cin.get();
8.检测文件尾EOF,键盘执行Ctrl+Z+Enter。如果检测到EOF,cin.fail()成员函数返回true,否则返回false,常见的字符输入做法如下:
while (cin.fail() == false); while (!cin.fail()); while (cin.get(ch));如果成功将值放入ch中,程序对cin进行bool转换,输入成功为true
9.cin.get(ch) 与 ch=cin.get() :
while(!cin.fail()) int ch; while( (ch = cin.get()) != EOF )
属性 | cin.get(ch) | ch=cin.get() |
传递输入字符的方式 |
赋给参数成ch |
将函数返回值赋给ch |
用于字符输入时函数的返回值 | istream对象(执行bool转换后为true) | int类型的字符编码 |
到达EOF时函数的返回值 | istream对象(执行bool转换后为false) | EOF |
10.输出一个二维数组,在输出中使用制表符\t比使用空格可使数据排列更加有规则。{ cout << maxtemps[year][city] << "\t"; } cout << endl;
第6章
11.逻辑OR运算符(||)和逻辑AND运算符(&&)的优先级都低于关系运算符;!运算符的优先级高于所有的关系运算符和算术运算符;逻辑AND运算符的优先级高于逻辑OR运算符。最简单的方法用括号分组
12.按位与运算符(&),按位或运算符(|),按位异或运算符(^)
13.#include<cctype>包含了很多函数,可以确定字符是否为大写字母、数字、标点符号等工作。
if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) 可以表示为 if(isalpha(ch))
14.switch语句:程序跳到switch中特定代码行后,将依次执行之后的所有语句,如若停止,必须有明确语句如break;
15.if语句用的非常随意,if与else if搭配使用需逐渐缩小范围
16.有关于文件输入输出...见17章