NOIP学习小站
西安交通大学附属中学航天学校

C++程序框架

编写C++程序,首先需要书写一些固定的内容,这些内容称之为C++程序框架。本小节我们一起来学习C++程序框架,并编写第一个C++程序。

注意:虽然本网站教程中的代码均可以复制粘贴,但是在初学入门阶段强烈建议参照程序自行输入,不要复制粘贴,只有自己手写代码才能发现编码中的语法问题,通过不断出现问题、寻找发现问题、解决问题,在实际操作中积累经验,自己的编码能力才能得到快速充实的提升!

一、C++程序框架

编写C++程序,首先需要书写一些固定的内容,这些内容称之为C++程序框架:

#include<iostream>
using namespace std;
int main()
{
    
    return 0;
} 

现阶段我们还无法完全理解上面每句代码的意义和用途,先努力把这个最基本的程序框架记下来。这里给出一些简单的解释,阅读后能够初步了解语句代码的意义,也能够帮助我们记忆。首先特别强调的是:C++中和语法相关的字母符号都是英文。我们编码的时候往往是在英文半角状态下输入代码。

第一句 #include<iostream> 是引入头文件,使用#include语句引入了iostream这个头文件。程序往往离不开输入数据和输出结果,C++内置了用于输出信息和输入数据的函数(现在可以把函数理解成工具,就像烹饪时使用的锅和铲子一样),这些函数就在iostream这个头文件里,要使用输入输出函数(本文后面要介绍的cin和cout)就需要先引入iostream这个头文件。后面我们还会接触到其它头文件,甚至我们还可以自己组织头文件。

记忆技巧:include——包含,iostreaminput output stream的简写,表示输入输出流。不要忘记include前面的#

include发音
stream发音

第二句 using namespace std; 表示使用std命名空间,命名空间是C++相对于C引入的新内容,暂时不用理解这一句的作用,只需知道使用这一句后可以直接使用cin、cout这些函数,而不需要写的过于复杂(std::cin,std::cout)。

记忆技巧:using——使用,namespace——命名空间(name+space),std是standard(标准)的简写。不要忘记语句末尾的英文分号 ;

接着 int main() 是主函数,可以看到后面有花括号{},将主函数的内容包围了起来。计算机运行我们编写的程序时,会自动从int main后面{}中的第一句开始运行,依次运行每条语句,直到最后一句为止。

主函数最后一条语句 return 0; 意思是主函数返回一个0。其实是向操作系统表明程序正常运行结束。注意,在平时测评和竞赛时千万不要返回一个非0值。

记忆技巧:int——整数数据类型,main——主要的,return——返回。不要忘记main后面的小括号(),return 0;这一句以英文分号 ; 结束。

main发音
return发音

在Dev C++中编写程序框架代码,保存文件并编译运行,运行结果如下图所示:

程序运行结果会通过自动打开的黑色控制台呈现。当前我们编写的是一个C++的框架程序,除了最基本的程序代码,没有其它任何语句(特别是输出语句),所以没有任何运行结果(需要注意的是,上图中红色方框内的信息是Dev C++平台给出的程序运行反馈信息,不是程序输出的内容!,其实我们从反馈信息中可以得知程序运行耗时0.2095秒,返回值是0——这是代码return 0;这一句的作用)。

竞赛的编程关注的是数据的高效处理,所以从头到尾我们编写的程序都是这样的控制台运行效果,不会涉及到窗体编程。

二、Hello World 程序

很多程序设计教材的第一个程序都是“Hello World 程序”(输出文字Hello World ),C++的“Hello World 程序”如下:

#include<iostream>
using namespace std;
int main()
{
    cout<<"Hello World";
    return 0; 
} 

第一次正式地在Dev C++中书写程序,这里特别提出“编码规范”,目前需要注意做到合理缩进

如上图所示,花括号{}中的内容没有顶在最左边写,而是缩进了一个制表符(键盘tab按键的效果就是一个制表符)。这样的好处是能够较好地展示出程序的结构,提高代码的可读性,特别是在程序结构复杂、代码量大的时候。幸运的是,在Dev C++中编码,会自动实现缩进功能(按下左花括号{并回车,会发现自动补齐了右花括号},并且光标自动移动到了{}中的空行,光标所在位置也自动实现了缩进),如果没有自动缩进,可以通过tab键来实现标准的缩进。

对于初学者,养成良好的编码习惯其实很重要,能够确保代码可读性。初学者在编码时大家一定要注意编码规范,习惯成自然,开始时不注意后面就很难纠正。想想需要去阅读大量书写随意、格式乱糟糟的代码,肯定是一件痛苦的事情。你书写的代码或许就是老师或者同学痛苦的根源。


上面的示例程序,在主函数int main中,return 0;语句前添加了一句 cout<<"Hello World"; 一般情况下,代码都书写在return 0;前。cout用于输出信息,这里输出了一句话Hello World,这一句话要用英文双引号括起来。cout与输出的内容间用两个英文左尖括号(小于符号) << 隔开。

我们发现上面的程序中有三句代码:

using namespace std;
cout<<"Hello World";
return 0;

它们都是以英文分号结束的。C++中的语句普遍以英文分号结束(但不是所有)。

编译运行“Hello World 程序”,结果如下:

可以看到程序输出了一句话Hello World。我们可以尝试输出其它内容,甚至是中文内容(竞赛时几乎不会出现输出中文内容的情况),只需要修改英文双引号中间的内容即可。但是注意要输出的内容必须用英文双引号括起来,不能是中文引号(特别是在测试输出中文内容时,容易遗忘切换输入法导致输入了中文引号,此时编译会出现错误提示)。

三、初学者编码容易犯的语法错误

这里总结一下初学者容易犯的语法错误:

  1. 框架中单词拼写错误。例如将main错误输入成mian;
  2. 中英文符号错误。C++中和语法相关的字母符号都是英文。例如cout输出中文信息忘记切换输入法输入了中文的引号导致语法错误;
  3. 遗忘语句结束符号——英文分号。C++中的语句普遍以英文分号结束,不要遗忘;
  4. 遗忘main后面的小括号()和包围main函数内容的{}。