1. cin读取错误时对换行符的处理

 #include <iostream>

 using namespace std;

 int main() {
double d;
char c;
cin >> d;
if(!cin) {
cout << "x" << endl;
cin.clear();
cout << cin.get() << endl;
}
// cin.get();
cin.get(c);
}

以上代码输入分为2种情况:

若输入为double类型,则cin.get(c)会读取换行符,程序运行结束。

若输入为非double类型,如char类型,则cin会置错误位,保留错误输入的同时丢弃回车符(现象如此,原因猜测),所以程序在运行到cin.get(c)时候会停止等待输入。

奇怪,又测试了几次,感觉和之前一样,程序运行结束。

2. const指针分析

在二级间接关系时,将const指针和非const指针混合的指针赋值方式将不再安全。

 const int **pp2;
int *p1;
const int n = ;
pp2 = &p1; // not allowed
*pp2 = &n; // valid
*p1 = ; // valid

pp2是一个指针,他指向另一个指针的地址,而另一个指针是指向一个int变量的地址。

pp2指针本身非const,所以可以指向一个指针地址,即&p1。但在实际编程中,语句4语法检查错误,原因是p1指向的是非const的int,而要求是const int。

假如语句4运行成功,则*pp2为指向一个const int的指针,赋值成功,即 p1 = &n,但实际情况下非const指针不能指向const变量,故运行*p1 = 10时与原先造成冲突。

C++ Primer Plus 6th 读书笔记 - 第6章 分支语句和逻辑运算符的更多相关文章

  1. C++ primer plus读书笔记——第6章 分支语句和逻辑运算符

    第6章 分支语句和逻辑运算符 1. 逻辑运算符的优先级比关系运算符的优先级低. 2. &&的优先级高于||. 3. cctype中的函数P179. 4. switch(integer- ...

  2. C++ Primer Plus读书笔记(六)分支语句和逻辑运算符

    1. 以上均包含在cctype中 1 #include<cctype> 2 //#include<ctype.h> 2.文件操作 (1)头文件 1 #include<fs ...

  3. 《C++Primer中文版》读书笔记——第1章 开始

    istream对象:cin(标准输入对象); ostream对象:cout(标准输出对象) cerr(输出错误和警告) clog(输出一般性信息) 读取数量不定的输入数据,eg , sum=; whi ...

  4. 《C++ Primer 4th》读书笔记 第3章-标准库类型

        原创文章,转载请注明出处:http://www.cnblogs.com/DayByDay/p/3911534.html

  5. 《C++ Primer 4th》读书笔记 第4章-数组和指针

    原创文章,转载请注明出处: http://www.cnblogs.com/DayByDay/p/3911573.html

  6. 《C++ Primer 4th》读书笔记 第5章-表达式

    原创文章,转载请注明出处: http://www.cnblogs.com/DayByDay/p/3912114.html

  7. 《C++ Primer 4th》读书笔记 第6章-语句

    原创文章,转载请注明出处: http://www.cnblogs.com/DayByDay/p/3912407.html

  8. 《C++ Primer 4th》读书笔记 第7章-函数

    原创文章,转载请注明出处:http://www.cnblogs.com/DayByDay/p/3912413.html

  9. 《C++ Primer 4th》读书笔记 第8章-标准IO库

    原创文章,转载请注明出处:http://www.cnblogs.com/DayByDay/p/3936457.html

随机推荐

  1. C++中string类的基本用法

    #include <iostream> #include <set> using namespace std; int main() { string line; getlin ...

  2. Tornado 模板支持“控制语句”和“表达语句”的表现形式

    Tornado 的模板支持“控制语句”和“表达语句”,控制语句是使用 {% 和 %} 包起来的 例如 {% if len(items) > 2 %}.表达语句是使用 {{ 和 }} 包起来的,例 ...

  3. python进行base64编解码

    [转] 直接上代码 import base64 fin = open(r"D:\2.zip", "rb") fout = open(r"D:\2.x. ...

  4. [Database] Deadlock avoidance protocol

    如何避免Deadlock,如果我们能提前知道各个Process对于资源的需求情况,我们就可以用Banker's algorithm (银行家算法) 来解决问题.可是这在现在中不好实现,因为很难提前知道 ...

  5. 我的django之旅(四)模型,模板和视图

    一.结合模型,视图和模板 1.数据和模板结合 基本工作流程: (1)在views.py文件中导入我们创建的models (2)在视图函数中使用models,进行crud操作. (3)将取得的数据存入t ...

  6. git:hook declined FATAL: W refs/heads DENIED by fallthru error

    hook declined FATAL: W refs/heads DENIED by fallthru error git提交代码时报错,网上查了,最终结果竟然是测试人员没有给我配置写的权限,配置了 ...

  7. [1] Tornado Todo Day0

    Github地址: day0 初始化数据库: jakeychen@JC:~/Public/tornado_todo$ pwd /home/jakeychen/Public/tornado_todo j ...

  8. [TYVJ] P1027 木瓜地

    木瓜地 背景 Background USACO OCT09 4TH   描述 Description Bessie不小心游荡出Farmer John的田地,而走进了相邻的农民的地.她举起一个木瓜,木瓜 ...

  9. LeetCode_Surrounded Regions

    Given a 2D board containing 'X' and 'O', capture all regions surrounded by 'X'. A region is captured ...

  10. JS 实现 startWith endWith函数

    String.prototype.startWith = function(s) { if (s == null || s == "" || this.length == 0 || ...