本节书摘来自异步社区出版社《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。最后,双击文件图标运行批处理文件。因为批处理文件会使控制台窗口处于打开状态,这时应当能看到程序结果。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

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

  1. 【一篇文章带你读完《C++游戏编程入门 第4版》】

    <C++游戏编程入门 第4版>下载地址:https://download.csdn.net/download/qq_23996157/10764030 有道云笔记分享:http://not ...

  2. GPU 编程入门到精通(三)之 第一个 GPU 程序

    博主由于工作当中的需要,开始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识,鉴于之前没有接触过 GPU 编程,因此在这里特地学习一下 GPU 上面的编程.有志同道合的小伙伴 ...

  3. 麒麟子Javascript游戏编程零基础教程四:你的第一个Javascript程序

    希望你不再怀念你飘逸的秀发,希望你不再习惯早睡早起的安稳. 因为当你敲下第一行代码,你就成为了程序员. 虽然麒麟子秀发依旧,但我不能保证,你的秀发,不会在10年之后,弃你而去. 麒麟子有必要提前科普一 ...

  4. GPU 编程入门到精通(二)之 运行第一个程序

    博主由于工作当中的需要,开始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识,鉴于之前没有接触过 GPU 编程,因此在这里特地学习一下 GPU 上面的编程.有志同道合的小伙伴 ...

  5. 《C++游戏编程入门(第4版)》——1.12 习题

    本节书摘来自异步社区出版社<C++游戏编程入门(第4版)>一书中的第1章,第1.1节,作者:[美]Michael Dawson(道森),更多章节内容可以访问云栖社区"异步社区&q ...

  6. 《C++游戏编程入门(第4版)》——1.8 Lost Fortune简介

    本节书摘来自异步社区出版社<C++游戏编程入门(第4版)>一书中的第1章,第1.8节,作者:[美]Michael Dawson(道森),更多章节内容可以访问云栖社区"异步社区&q ...

  7. 《C++游戏编程入门(第4版)》——2.4 使用带else子句的if语句序列

    本节书摘来自异步社区出版社<C++游戏编程入门(第4版)>一书中的第2章,第2.4节,作者:[美]Michael Dawson(道森),更多章节内容可以访问云栖社区"异步社区&q ...

  8. 《C++游戏编程入门(第4版)》——1.11 问题讨论

    本节书摘来自异步社区出版社<C++游戏编程入门(第4版)>一书中的第1章,第1.11节,作者:[美]Michael Dawson(道森),更多章节内容可以访问云栖社区"异步社区& ...

  9. 《C++游戏编程入门(第4版)》——1.9 本章小结

    本节书摘来自异步社区出版社<C++游戏编程入门(第4版)>一书中的第1章,第1.9节,作者:[美]Michael Dawson(道森),更多章节内容可以访问云栖社区"异步社区&q ...

  10. 《C++游戏编程入门(第4版)》——1.10 问与答

    本节书摘来自异步社区出版社<C++游戏编程入门(第4版)>一书中的第1章,第1.10节,作者:[美]Michael Dawson(道森),更多章节内容可以访问云栖社区"异步社区& ...

最新文章

  1. Nature认定:中国高校论学术,中科大无悬念第一
  2. Pixhawk---超声波模块添加说明(I2C方式)
  3. perl连接oracle的方法,Perl 连接Oracle 数据库
  4. java录入会员信息_Java编程语言基础 第三章 实现会员信息录入功能
  5. 浅谈http协议六种请求方法,get、head、put、delete、post、options区别
  6. Python读取excel文件数据并画柱状图
  7. ORACLE SQL 查询练手
  8. android 7双排设置菜单,双排状态栏布局教程
  9. Android悬浮窗的简单实现
  10. 算法题(2)力扣第n位数字
  11. 小米MIUI或其他手机黑暗深色模式部分控件失效无效
  12. 启动weblogic的遇见的一些问题及解决方案(环境为win 10 64位,weblogic 12.2.1)
  13. windows 组策略
  14. 如何使用hbuilder快速生成一个直接打开网站的app
  15. 微信小程序如何段落首行缩进
  16. EasyCVR视频广场的视频分享时,需要用户登录的原因分析及优化
  17. 2021CSP-J3
  18. 从奶农倒奶看中国经济发展
  19. Java基础知识复习01:从基础知识---面向对象(后续会更新)
  20. R 语言绘制二维正态分布的密度曲面图;

热门文章

  1. gitolite安装及配置
  2. 【ant项目构建学习点滴】--(3)打包及运行jar文件
  3. yum 安装Mysql8.0
  4. ES6的新特性(9)——对象的扩展
  5. React-Native集成dva.js
  6. HTTP协议探究(一):缓存
  7. 打包,VS 之 InstallShield Limited Edition for Visual Studio 2015 图文教程
  8. Android AR场景拍照技术实现(有关键源代码)
  9. 超过130个你需要了解的vim命令
  10. (TOJ1224)数据结构练习题——后序遍历二叉树