《C++游戏编程入门(第4版)》——1.2 编写第一个C++程序
本节书摘来自异步社区出版社《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++程序相关推荐
- 【一篇文章带你读完《C++游戏编程入门 第4版》】
<C++游戏编程入门 第4版>下载地址:https://download.csdn.net/download/qq_23996157/10764030 有道云笔记分享:http://not ...
- GPU 编程入门到精通(三)之 第一个 GPU 程序
博主由于工作当中的需要,开始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识,鉴于之前没有接触过 GPU 编程,因此在这里特地学习一下 GPU 上面的编程.有志同道合的小伙伴 ...
- 麒麟子Javascript游戏编程零基础教程四:你的第一个Javascript程序
希望你不再怀念你飘逸的秀发,希望你不再习惯早睡早起的安稳. 因为当你敲下第一行代码,你就成为了程序员. 虽然麒麟子秀发依旧,但我不能保证,你的秀发,不会在10年之后,弃你而去. 麒麟子有必要提前科普一 ...
- GPU 编程入门到精通(二)之 运行第一个程序
博主由于工作当中的需要,开始学习 GPU 上面的编程,主要涉及到的是基于 GPU 的深度学习方面的知识,鉴于之前没有接触过 GPU 编程,因此在这里特地学习一下 GPU 上面的编程.有志同道合的小伙伴 ...
- 《C++游戏编程入门(第4版)》——1.12 习题
本节书摘来自异步社区出版社<C++游戏编程入门(第4版)>一书中的第1章,第1.1节,作者:[美]Michael Dawson(道森),更多章节内容可以访问云栖社区"异步社区&q ...
- 《C++游戏编程入门(第4版)》——1.8 Lost Fortune简介
本节书摘来自异步社区出版社<C++游戏编程入门(第4版)>一书中的第1章,第1.8节,作者:[美]Michael Dawson(道森),更多章节内容可以访问云栖社区"异步社区&q ...
- 《C++游戏编程入门(第4版)》——2.4 使用带else子句的if语句序列
本节书摘来自异步社区出版社<C++游戏编程入门(第4版)>一书中的第2章,第2.4节,作者:[美]Michael Dawson(道森),更多章节内容可以访问云栖社区"异步社区&q ...
- 《C++游戏编程入门(第4版)》——1.11 问题讨论
本节书摘来自异步社区出版社<C++游戏编程入门(第4版)>一书中的第1章,第1.11节,作者:[美]Michael Dawson(道森),更多章节内容可以访问云栖社区"异步社区& ...
- 《C++游戏编程入门(第4版)》——1.9 本章小结
本节书摘来自异步社区出版社<C++游戏编程入门(第4版)>一书中的第1章,第1.9节,作者:[美]Michael Dawson(道森),更多章节内容可以访问云栖社区"异步社区&q ...
- 《C++游戏编程入门(第4版)》——1.10 问与答
本节书摘来自异步社区出版社<C++游戏编程入门(第4版)>一书中的第1章,第1.10节,作者:[美]Michael Dawson(道森),更多章节内容可以访问云栖社区"异步社区& ...
最新文章
- Nature认定:中国高校论学术,中科大无悬念第一
- Pixhawk---超声波模块添加说明(I2C方式)
- perl连接oracle的方法,Perl 连接Oracle 数据库
- java录入会员信息_Java编程语言基础 第三章 实现会员信息录入功能
- 浅谈http协议六种请求方法,get、head、put、delete、post、options区别
- Python读取excel文件数据并画柱状图
- ORACLE SQL 查询练手
- android 7双排设置菜单,双排状态栏布局教程
- Android悬浮窗的简单实现
- 算法题(2)力扣第n位数字
- 小米MIUI或其他手机黑暗深色模式部分控件失效无效
- 启动weblogic的遇见的一些问题及解决方案(环境为win 10 64位,weblogic 12.2.1)
- windows 组策略
- 如何使用hbuilder快速生成一个直接打开网站的app
- 微信小程序如何段落首行缩进
- EasyCVR视频广场的视频分享时,需要用户登录的原因分析及优化
- 2021CSP-J3
- 从奶农倒奶看中国经济发展
- Java基础知识复习01:从基础知识---面向对象(后续会更新)
- R 语言绘制二维正态分布的密度曲面图;