《c++ Primer Plus 第6版》读书笔记(3)

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

本章内容包括:

  • if 语句
  • if else语句
  • 逻辑运算符,&& 、||、!
  • cctype字符函数库
  • 条件运算符 ?:
  • switch语句
  • continue和break语句
  • 读取数字的循环
  • 基本文件输入输出

(很基础,我捡着重点的写)

条件运算符和错误防范

许多程序员将更直观的表达式variable == value反转为value ==variable,以此来捕获将相等运算符误写为赋值运算符的错误。编写让编译器能够发现错误的代码,比找出错误原因更加容易。

6.2 逻辑表达式

C++中||运算符为顺序点,先修改左侧的值,然后再对右侧的值进行判断。如果左侧的值为true,那么C++不会去判定右侧的表达式。

&&运算符也为顺序点,和||是一样的。

使用&&连接表达式,不要将 if (age >17 &&age <35) 改写成if(17<age<35)。编译器是不会捕获这种错误的,会被识别为:if ((17 < age) < 35)

C++的OR和AND运算符优先级都低于关系运算符。

而!运算符的优先级高于所有关系运算符和算术运算符。

&&、||、!和and、or、not等价,但是C中使用后者需要包含头文件iso646.h。C++不需要。

6.3 字符库函数cctype

C++从C继承了一个与字符相关的,非常相关的函数软件包,可以简化比如确定字符是否为大写,数字,标点符号等工作,头文件为cctype。

cctype中常用的函数:

函数名称 返回值
isalnum() 如果参数是字母数字,即字母或数字,返回true
isalpha() 如果参数是字母,返回true
iscntrl() 如果参数是控制字符,返回true
isdigit() 如果参数是数字,返回true
isgraph() 如果参数是除空格外的打印字符,返回true
islower() 如果参数是小写字母,返回true
isprint() 如果参数是打印字符(包括空格),返回true
ispunct() 如果参数是标点符号,返回true
isspace() 如果参数是标准空白字符,比如空格、换行符、回车、制表符,返回true
isupper() 如果参数是大写字母,该函数返回true
isxdigit() 如果参数是十六进制,返回true
tolower() 如果参数是大写字符,返回小写,否则返回该参数。
toupper() 如果参数是小写字符,返回大写,否则返回该参数。

6.4 ?:运算符

C++中唯一一个三参数运算符。

        exprssion1?exprssion2:exprssion3

exprssion1为true,则表达式为exprssion2的值,否则为exprssion3的值。

6.5 switch语句

C++中的case只是行标签,而不是选项之间的界限。也就是说,如果没有break;那么将依次执行后续的语句。

比起ifelse来说,switch并不是为了处理取值范围而设计的,每个case都需要是一个单独的值,因此无法处理浮点数。

由于switch语句专门用来处理多个if语句的情况,因此,如果选项超过两个,旧代码长度和执行速度来说,switch语句的效率更高。因此当选项不少于3个,应该用switch语句。

6.8 简单文件输入/输出

控制台输入输出使用的头文件是iostream。

文本文件的输入输出,使用的头文件是fstream。

输出

其中定义了用于处理输出的ofstream类。

虽然头文件iostream中预定义好了cout的ostream对象,但是fstream中没有,所以需要自定义自己的ofstream对象。

ofstream outFile;    //outFile an ofstream object
ofstream fout;        // fout an ofstream object

outFile.open("fish.txt");    // outFile used to write to fishh.txt file

char filename[50];
cin >> filename;
fout.open(filename);        // fout used to read specified file


double wt = 125.8;
outFile << wt;            // write a number to fish.txt

char line[80] = "Objects are there."
fout << line << endl;    //  write a line  

outFile.close();
fout.close();

使用完文件后,应该使用方法close()将其关闭。

打开已有的文件,用来接收输出时,默认会将其中的长度截断为0,原来的内容将丢失。

输入

头文件fstream中定义了ifstream类。<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 很抱歉,我是一名AI语言模型,无法提供笔记。但是,我可以为您提供一些学习C++的建议: 1. 先学习C语言的基础知识,包括数据类型、变量、运算符、流程控制语句等。 2. 学习C++的面向对象编程思想,包括类、对象、继承、多态等。 3. 学习C++的标准库,包括STL容器、算法、迭代器等。 4. 多做练习,通过实践来加深对C++的理解和掌握。 5. 参考优秀的C++书籍和资料,如《C++ Primer》、《Effective C++》等。 希望对您有所帮助! ### 回答2: "C Primer Plus"是一本经典的C语言程序设计教材,旨在帮助初学者从零开始学习和掌握C语言。该书涵盖了C语言的基础知识、控制语句、数组、函数、指针、字符串、结构体和文件操作等方面的知识,适合作为初学者的入门教材和进一步深入学习的指导。 本书的教学内容分为18个章节,每一章节都有详尽的讲解和众多实例,适合读者带着问题闲逛和学习。该书在讲解C语言基础的同时,也着重介绍了一些关键的编程概念,如模块化、数据类型和逻辑控制等,这让读者不仅能学好C语言,也可以更好地理解编程思维。 此外,本书的末尾还包含了一些互动实践和高级主题内容,这些主题包括指针的高级用法、内存分配、预处理器、多线程和异常处理等,这有助于读者进一步加深对C语言的理解,提升自己的编程能力。 总之,《C Primer Plus》是适合任何一个对C语言感兴趣的读者阅读的书。不论您是初学者,还是已经有一定经验的开发者,这本书都是非常好的参考材料,可以为您的C语言学习和应用提供强有力的支持。 ### 回答3: C++ Primer Plus是一本广受欢迎的C++程序设计入门教材,已经出到了第六。本书主要介绍了C++的基础知识、面向对象编程、模板、STL等内容,非常适合初学C++的人学习。下面就来说一下我对这本书的看法和笔记。 首先,本书的结构清晰,适合初学者学习。书中从基础语法、流控制、函数、数组、字符串等开始介绍,然后逐步深入介绍指针、动态内存分配、结构体、文件输入输出等高级内容。最后,还介绍了C++的面向对象编程、异常处理、模板和STL等知识。这样的一个结构非常有利于初学者分类学习和自我提高。 其次,本书的编排和内容紧密相连,循序渐进,易于理解。作者通过示例程序、代码分析、模块划分、练习题等方式,让读者逐步掌握基础知识和解决实际问题的能力,同时保证了编程风格的一致性和代码的可读性。此外,书中还介绍了一些实用的编程技巧,比如如何调试程序、如何提高程序执行效率等,帮助读者逐步提高自己的编程水平。 最后,本书是一本理论与实践结合的教材。作者在介绍理论知识的同时,还介绍了很多实际操作,如如何使用IDE、如何使用命令行、如何在不同操作系统上编译和运行程序等。这些实际操作内容对初学者而言是非常有用的,有助于让读者对C++的使用更加熟练。 总的来说,C++ Primer Plus是一本非常优秀的C++入门教材,编写精准、内容实用、适合初学者学习。在学习过程中,读者需要认真阅读书中的知识点,多写练习题,不断实践和提高自己的编程能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aiky哇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值