《C++ Primer Plus 第六版 中文版》的研读与学习(四)

往期传送门:
《C++ Primer Plus 第六版 中文版》的研读与学习(三)

《C++ Primer Plus 第六版 中文版》的研读与学习(二)

《C++ Primer Plus 第六版 中文版》的研读与学习(一)
今天,我们继续来学习《C++ Primer Plus 第六版 中文版》,上次我们讲到C++的头文件和命名空间,今天我们下来看看C++中显示消息(输出)的语句。
先贴上样例代码:

#include <iostream>                           // a PREPROCESSOR directive  一个预处理器编译指令 
int main()                                    // function header  函数头 
{                                             // start of function body  开始函数体 
 using namespace std;                      // make definitions visible   编译指令 
 cout << "Come up and C++ me some time.";  // message  输出一条信息
 cout << endl;                             // start a new line  换行 
 cout << "You won't regret it" << endl;    // more output 更多输出 
 return 0;                                 // terminate main()  终止主函数 
}                                             // end of function body  结束函数体

在C++中,我们使用cout语句进行输出操作,双引号内为输出内容(字符串),符号<<指出了信息流动的方向。其中,cout是一个预定义的对象,只需要知道对象的接口,不需知道其具体内容即可使用。
例如:

#include <iostream>
int main()
{
 using namespace std;
 string str = "Hello world!";  //C++中字符串的定义使用string
 cout << str;  //输出str字符串
 cout << endl;
 return 0;
}

语句cout << str;并不知道str的具体内容,只知道其接口,仍然可以成功完成输出操作。
在C++中,输入输出的概念均为“流”,这一点不同于C语言。也就是说,我们将要输出的字符串插入到输出流当中实现了输出。
在本文贴出的两段代码中,都有这样的一条语句:

cout << endl;

在C++中,endl是一个重要的控制符(manipulator),表示重起一行。同样在头文件iostream中定义,位于名称空间std中。
当然,在C++中也兼容传统的C换行符\n,例如:

#include <iostream>                           
int main()                                    
{                                             
 using namespace std;
 cout << "Come up and C++ me some time.";
 cout << "\n";
 cout << "You won't regret it\n";
 return 0;
}

也可以达到同样的效果。
接下来,我们谈谈关于C++代码的格式化。有些语言(例如Python)是面向行的,每一行仅有一条语句、一条语句仅能占据一行。但是在C++中,由于有分号作为分隔符,同一条语句可以占据若干行、若干条语句也可以放在同一行(即语句中空格、制表位、回车等效)。当然,原始字符串中,也可以包含回车(C++11新增)。
此时,就需要引入C++中的两个重要概念:标记(token)和空白(white space)。标记是一行代码中不可分割的部分,必须用空格、制表位、回车将两个标记分隔开,空格、制表位、回车统称为空白。
因此,如下的代码是合法的:

int main()
return 0;

如下的代码是非法的:

intmain()
return0;

为了代码阅读方便,我们通常采用以下的风格书写C++代码:

  • 每条语句占一行、一行一般只有一条语句
  • 每个函数都有一对花括号在函数体两端,各占一行、缩进相同
  • 函数中的语句相对于花括号缩进一个制表位
  • 函数名称相关的圆括号周围没有空白

今天的分享就到此结束,下一期我们将重点讲解C++语句的内容。

上一篇:【C++】《C++ Primer 》第十一章


下一篇:C++ Primer——面向对象程序设计