Chapter 1
流是指要从某种IO设备上读入或写出的字符序列。
::叫scope operator 作用域操作符
文件结束符用来终止输入。windows下是ctrl+z,unix中是ctrl+d
Chapter 2
以0开头的字面值常量表示八进制,以0x或0X开头的表示十六进制(包括在C语言里输出地址也是用%x比较好)
默认的字面值常量的类型为int或long类型,其精度类型取决于字面值。可以通过在数值后面家U或u定义unsigned类型,加L或l定义long类型。同时加UL表示unsigned long类型的字面值常量,但其后不能有空格。默认的浮点字面值常量为double类型,而在数值后面加上F或f表示单精度。在字符字面值前加L得到wchar_t类型的宽字符字面值。
宽字符字面值占2个字节,包括宽字符字符串的结束符。比如sizeof(L'a')=2,sizeof("abc")=4,sizeof(L"abc")=8。
两个相邻的仅由空格、制表符或换行符分开的字符串字面值(或宽字符串字面值),可连接成一个新字符串字面值。例如
std::cout<<"a multi-line"
"string literal"
"using concatenation"
<<std::endl;
执行这条语句将会输出:
a multi-line string literal using concatenation
而字符串字面值和宽字符串字面值是不能连接的。
处理长字符串也可以在一行的末尾加一个反斜线符号(\)将此行和下一行当做同一行来处理。但是反斜线符号必须是该行的尾字符,后继行行首的任何空格和制表符都是字符串字面值的一部分。
在函数体外定义的变量都初始化成0,在函数体里定义的内置类型变量不进行自动初始化。
Chapter 3
string类型的输入操作符:
1.读取并忽略开头所有的空白字符(如空格,换行符,制表符)
2.读取字符直至再次遇见空白字符,读取终止。
getline函数从输入流的下一行读取,并保存读取的内容到string中,但不包括换行符。
当进行string对象和字符串字面值混合连接操作时,+操作符的左右操作数必须至少有一个是string类型的。