这里出现了一个cout<<++ch;这时候是输出一个char 字符,因为同类型不涉及隐式转换,如果是cout<<ch+1; 由于1是int,所以吧ch转为int,输出该字符对应的ASCII
如果多个判断项不能共存,也就是说多个判断项同时只能有一个成立,那么应该写if else if,这样当其中有一个成立时,后面的判断就不继续进行了,如果写了好多个if,是每一个都要进行判断的
C++11中直接包含 cctype即可,也可以写 ctype.h,其中包含了很多现成的函数帮助我们进行字符的判断及处理
expression1 ? expression2 : expression3
这里书中给了一个有点抽象的三目运算符
const char x[2] [20] = {"Jason", "at your service\n"};
const char * y = "Queen";
for(int i=0;i<3;i++)
cout<<((i<2)? !i?x[i]:y :x[1]);
应该输出的是 Jason Queen at your service
书中的cout是连在一起的,我通过加上空格,有助于理解
枚举类型是不能作为switch后面括号的内容的,但是可以作为case标签,这是如果switch将int值和枚举量标签进行比较时,将枚举类型提升为int,在while循环中,也会把枚举类型提升为int
这里需要注意的一点是
int n;
cin>>n;
如果我们这里不输入数字会发生什么:
上面这部分对应之前的博客有讲过,链接
最后一题中,fin>>int 把第一行的4读取之后,换行符还留在了缓冲区里,导致使用getline(ifstream, name)时,把换行符误读走了,这个问题的原因与下面的一样
int main()
{
int a;
char b[2];
cin >> a;
cin.getline(b, 2);
cout << a << "--" << b;
}
根本没有输入b数组的机会,因为换行符还在缓冲区,所以也一样,需要先吃掉换行符
本文地址:https://blog.csdn.net/qq_36437446/article/details/107369157
如对本文有疑问, 点击进行留言回复!!
Qt编译出现QObject::connect: Cannot queue arguments of type 【解决方法】
Qt项目中,用QPainter进行绘制图形时,边角显示不完整问题的梳理
荐 pyqt5 tableWidget入门,和treewidget联动功能
网友评论