C++ Primer Plus 学习笔记(三)

目录

第六章. 分支语句和逻辑运算符

1. if 语句

2. 逻辑表达式

3. 字符函数库cctype

4. ?:运算符

5. switch 语句

6. break 和 continue 语句

7. 读取数字的循环

8. 简单文件输入/输出


第六章. 分支语句和逻辑运算符

1. if 语句

没啥

2. 逻辑表达式

C++ 有个顺序点的概念,像逗号运算符、逻辑运算符都是从左到右的顺序,四则运算的时候,像3*4+5*6的时候,可能会先算5*6.。17 < age < 35这种情况,先比较 17 < age,它的值要么是 TRUE 要么是 FALSE,即0或者1,因此一定小于35,所以这么写一定是true。

逻辑“与”(&&)和“或”(||)的优先级小于关系运算符,而逻辑“非”(!)的优先级高于关系运算符和算术运算符,因此在使用“非”(!)的时候,注意括号的使用。

逻辑“与”(&&)的优先级高于“或”(||),一起使用的时候同样注意括号。

运算符另一种表示方式
&&and
||or
not

3. 字符函数库cctype

标准库的一些函数

4. ?:运算符

通用格式:

expression1 ? expression2 : expression3

expression1 为真,整个表达式的值为expression2,否则为expression3。

const char x[2][20] = {"Jason", "at your service\n"};
const char * y = "Quillstone ";
for (int i = 0; i < 3; i++}
{
    cout << ((i < 2) ? !i ? x[i] : y : x[1]);
}
// 先计算 !i ? x[i] : y

5. switch 语句

swtich的参数必须是整数值的表达式(包括 char),case的标签也是一样,且是常量。如果没有 default 且 switch 的参数没有匹配的 case ,则跳过 switch 语句。

选项超过两个,相较于 if else 语句,switch 执行速度效率更高。

6. break 和 continue 语句

break 跳过循环或者 switch 语句剩下的部分, continue 语句用于循环中,跳过剩下的语句,开始新一轮的循环。

7. 读取数字的循环

cin.clear()当 cin 为 false 时,重置输入,不然输入会停滞。

8. 简单文件输入/输出

cin 进行输入时,将输入看做字符,根据输入的变量类型将字符转换成对应的量。cout 与 cin 正好反过来,将变量的值转换成字符输出出来。

文件输入输出也需要特定的头文件 <fstream>,使用 std :: 或 using 使用 fstream 中的元素,与 cin、cout 类似的性质。不过 fstream 的 ifstream 和 ofstream 的对象需要声明出来。

ifstream inFile;
ofstream outFile;

ofstream 的对象调用 open 函数时,打开已有的文件并默认删除该文件的内容,文件处理完成后,调用 close 函数关闭文件。

cout << std::fixed;  // 用一般的形式表示浮点数,不是科学计数法

打开文件是否失败,可以用下面方法测试:

inFile.open("bowl.txt");
if (!inFile.is_open()){  // is_open判断函数是否正确打开
    exit(EXIT_FAILURE);
}

EXIT_FAILURE 和 exit() 定义在头文件 cstdlib 中,该函数终止程序。输入或输出的文件要包含路径,默认在程序的文件夹内。

good 方法检查 ifstream 对象是否正常,eof 方法检查是否读到文件尾,bad 方法检查输入与想要的类型是否匹配,如果返回 true ,输入会停止,需要 clear 来清除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值