《C++ Primer Plus》读书笔记之四—分支语句和逻辑操作符
第六章 分支语句和逻辑操作符
1、&&的优先级低于关系操作符。
2、取值范围:取值范围的每一部分都使用AND操作符将两个完整的关系表达式组合起来:
if(age>17&&age<35) // OK
if(17<age<35) // don't do this!!
3、!操作符的优先级高于所有的关系操作符和算术运算符。即!>关系操作符>AND>OR。
4、虽然C++操作符的优先级规则常可能不使用括号便可以编写复合比较的语句,但最简单的方法还是用括号将测试进行分组,而不管是否需要括号!
5、switch语句中的每一个case标签都必须是一个单独的值,另外,这个值必须是整数(包括char),因此switch无法处理浮点测试。另外case标签值还必须是常量。
6、使用cin进行输入时,程序将输入视为一系列的字节,其中每个字节都被解释为字符编码。不管目标数据类型是什么,输入一开始都是字符数据——文本数据。然后,cin对象负责将文本数据转为其他类型。
7、写入到文本文件中的必须步骤:
#include<fstream> // 里面定义了一个用于处理输出的ofstream类。
ofstream outFile;// 声明一个ofstream类对象。
outFile.open("fish.txt"); // 将对象与特定的文件关联起来。若打开已有文件,以接受输出时,默认将其长度截短为 0,因此原来的内容将丢失
或者 char filename[50]; cin>>filename; outFile.open(filename);
double wt=125.8;
outFile<<wt; // write a number to fish.txt
char line[81]="gfdsygfiuewgfhuidshfuids";
outFile<<line<<endl; // write a line to fish.txt
outFile.close() // 使用完文件后,应使用close将其关闭
注:所有可用于cout的操作和方法(如<<、endl和setf())都可用于ofstream对象;创建好ofstream对象后,便可以像使用cout那样使用它了。
8、读取文本文件的必须步骤:
#include<fstream> // 里面定义了一个用于处理输出的ifstream类。
ifstream inFile;// 声明一个ifstream类对象。
inFile.open("bowling.txt"); // 将对象与特定的文件关联起来。
或者 char filename[50]; cin>>filename; inFile.open(filename);
double wt;
inFil>>wt; // read a number from bowling.txt
char line[81];
inFile.getline(line,81); // read a line of text
inFile.close() // 使用完文件后,应使用close将其关闭
注:所有可用于cin的操作和方法都可用于ifstream对象;
9、检查文件是否被成功打开的方法:is_open()或者good():
inFile.open("bowling.txt");
if(!inFile.is_open())=if(!inFile.good())
{
exit(EXIT_FAILURE);
}
exit()的原型是在头文件cstdlib中定义的,在该头文件中还定义了一个用于操作系统通信的参数值EXIT_FAILURE。函数exit()终止程序。
10、读取文件的检查:如果遇到EOF,方法eof()将返回true;类型如果不匹配或者遇到EOF,方法fail()将返回true;如果某些预期外的东西可能出现问题,例如文件受损或硬件故障,方法bad()将返回true。不要分别检查这些情况,一种更简单的方法是用good()方法,该方法在没有发生任何错误时返回true。