《C++游戏编程入门(第4版)》——1.2 编写第一个C++程序

    xiaoxiao2024-05-30  101

    本节书摘来自异步社区出版社《C++游戏编程入门(第4版)》一书中的第1章,第1.2节,作者:【美】Michael Dawson(道森),更多章节内容可以访问云栖社区“异步社区”公众号查看。

    1.2 编写第一个C++程序

    C++游戏编程入门(第4版)到此为止,我们已经介绍了足够多的理论知识。现在来实践编写第一个C++程序。麻雀虽小,五脏俱全。该程序同样演示了在控制台窗口中显示文本的方法。

    1.2.1 Game Over程序简介

    程序员在学习新语言时,编写的第一个程序便是经典的Hello World程序,在屏幕上显示Hello World。Game Over程序打破了这个传统,显示的是Game Over!。该程序的运行结果如图1.2所示。

    图1.2 您的第一个C++程序显示的是计算机游戏中名声最差的两个单词

    从Cengage Learning网站(www.cengageptr.com/downloads)上可以下载该程序的代码。程序位于文件夹Chapter 1中,文件名为game_over.cpp。

    提示 在网站www.cengageptr.com/downloads上可以搜索本书,下载本书程序的全部源代码。可以使用本书的ISBN号9781305109919来搜索。

    // Game Over // A first C++ program #include <iostream> int main() {    std::cout << "Game Over!" << std::endl;    return 0; }``` ###1.2.2 注释 程序的前两行是注释。

    // Game Over// A first C++ program`注释是给程序员看的,编译器完全忽略。注释可以帮助其他程序员理解程序作者的意图。它也对程序作者本身有帮助。对于程序员曾使用晦涩的代码完成的工作,它能帮助程序员回忆起代码的含义。

    注释以两个连续的斜线(//)开始,其后的部分即为注释部分。这意味着我们可以在同一行中某一块C++代码后面添加注释。

    提示 我们还可以使用C风格注释,将注释扩展到多行。所要做的只是把注释以/开头,并以/结尾。任何处于这两个记号之间的文本都是注释部分。

    1.2.3 使用空白字符

    程序Game Over中注释以下是一个空白行。编译器会忽略空白行。实际上,编译器忽略所有的空白字符——空格、制表符和换行符。和注释一样,空白字符只是给程序员看的。

    空白字符使用得当可以让程序更加清晰易懂。例如,空白行可以用于分隔属于一起的代码块。该程序的代码也将空白字符(准确地说是制表符)置于花括号中两行的起始位置,作为每一行的开始。

    1.2.4 包含其他文件

    程序中接下来的一行是预处理器指令。预处理器指令以#符号开头。`

    include `

    预处理器 在编译之前运行,并基于各种指令进行文本替换。在本例中,含有#include指令的这一行代码告诉预处理器将另一个文件的内容包含进来。

    程序中包含了作为标准库一部分的iostream文件,因为其中有用于显示输出的 代码。

    文件名两端的小于号(<)和大于号(>)告诉编译器在其自带文件中查找需要的文件。像这样包含在程序中的文件称为头文件。

    1.2.5 定义main()函数接下来的非空白行是一个名为main()的函数头。`int main()`函数 是指一组程序代码,它能完成某种任务并返回一个值。在本程序中,int表示函数将返回一个整型值。所有函数头在函数名后面都有一对圆括号。

    所有C++程序都必须有一个名为main()的函数作为程序的起始点。程序是从这里开始运行的。

    下面一行标记函数的开始。`{`程序的最后一行标记函数的结束。`}`所有函数都被一对花括号括起来。花括号里面的代码都属于函数。两个花括号之间的代码称为代码块。代码块通常会缩进显示,表示它形成了一个代码单元。构成整个函数的代码块称为函数体。

    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所示,它以图形方式形象地表示了所有描述过的元素之间的关系。 ()<div style="text-align: center"> <img src="https://yqfile.alicdn.com/4e09f849b8859f5c9a28ba5b1c5268c400d9de07.png" > </div> 图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)把这个文件保存到和game_over.exe文件相同的文件夹中。以.bat扩展名保存文件,如game_over.bat。 最后,双击文件图标运行批处理文件。因为批处理文件会使控制台窗口处于打开状态,这时应当能看到程序结果。 本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。
    最新回复(0)