1.2.6 通过标准输出显示文本
main()函数体的第一行在控制台窗口显示Game Over!和一个换行符。
std::cout << "Game Over!" << std::endl;
“Game Over!”是字符串,即一连串可以打印的字符。从技术上而言,它是一个字符串字面值,即它就是引号中间的那些字符。
cout是在iostream文件中定义的对象,用于向标准输出流发送数据。在大多数程序中(包括本程序),标准输出流仅仅是指计算机屏幕中的控制台窗口。
输出运算符(<<)用于向对象cout发送字符串。可以将输出运算符想象成一个漏斗,它将开口一端的数据收集起来并使其流向收口的一端。所以,字符串顺着漏斗流向了标准输出——屏幕。
cout的前缀std告诉编译器这里的cout来自标准库。std是名称空间。可以将名称空间想象成电话号码的区号,它唯一标识了成员所属的组。名称空间后面跟着作用域解析运算符(::)。
最后,程序还向标准输出发送了std::endl。endl在iostream中定义,它也是std名称空间中的一个对象。向标准输出发送endl类似于在控制台窗口中按下回车键。实际上,如果此时向控制台窗口发送另一个字符串,它将出现在屏幕的下一行。
这些概念可能有些难以理解。请看图1-3,它以图形方式形象地表示了所有描述过的元素之间的关系。
图1-3 标准C++的实现包含了一个称为标准库的文件集合。标准库包含了iostream文件。
iostream文件又包含了各种定义,其中包括cout对象的定义
1.2.7 语句的终止
如果留意函数的第一行,会发现它以一个分号(;)结尾。这是因为这一行是一条语句——控制程序执行流程的基本单元。所有语句都必须以分号结尾,否则编译器会报错,而且不会编译程序。
1.2.8 从main()函数返回值
函数的最后一条语句将0返回给操作系统。
return 0;
从main()函数返回0表示程序正常结束。操作系统与返回值无关。一般来说,可以像该程序一样简单地返回0。
技巧
在运行Game Over程序时,可能只是看见控制台窗口一闪而过。那是因为C++太快,它在不到一秒的时间内打开一个控制台窗口,显示Game Over!,然后关闭窗口。然而,在Windows操作系统下,可以创建批处理文件,在运行控制台程序后暂停。这可以保持控制台窗口处于打开状态,以便查看程序结果。因为编译后的程序名为game_over.exe,所以可以简单地创建由以下两行代码组成的批处理文件:
game_over.exe
pause
创建批处理文件的步骤如下:
(1) 打开一个文本编辑器,如Notepad(不能是Word或WordPad)。
(2) 输入文本。
(3) 以.bat扩展名保存文件,如game_over.bat。
最后,双击文件图标运行批处理文件。因为批处理文件会使控制台窗口处于打开状态,这时应当能看到程序结果。