- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
信息学竞赛中可能用到的C++语法
冯文科
虽然我们总是习惯写“C/C++”,其实大家都知道C与C++是两种不同的语言:C++是C的“超集”——它“几乎”完全兼容C的语法,同时也提供非常多特有的语法与概念。
本文并不想全面介绍C++的语法与概念——那足够写一本一寸多厚的专业书籍——只是将信息学竞赛中可能要用到的C++语法做个简要介绍,它们的加入将使您原有的C程序更简洁、清晰,书写更方便。
首先要说明的一点是:C++程序源文件的扩展名是“cpp”,而不是C程序的“c”,这也是多数编译器识别一个源程序是C++程序还是C程序的标准。由于C++是C的“超集”,因此您可以在“*.cpp”文件中原样书写C程序而且“几乎”不会遇到什么问题。特别强调:本文中介绍的语法,都是只能在“*.cpp”文件中使用的C++语法,C语言的编译器不会编译通过。(本文中所有源程序都在Dev-C++中编译通过。)
一、输入输出流。
C++中对输入输出部分做了很大的修改,C语言中使用scanf、fscanf、printf、fprintf进行的输入输出工作都由对“流(stream)”的操作代替了。您可以向一个输出流中用“”符号“插入”一些内容——相当于输出,也可以用“”符号从一个输入流中“提取”一些内容——相当于输入。
[例1](从键盘读入及向屏幕输出)从键盘读入两个整数,由小到大排序后输出,用空格分开。
[源程序]
#include iostream //要使用输入输出流必须的头文件,注意没有“.h”
using namespace std; //要使用cin与cout必须包括的命名空间
int main(int argc, char *argv[])
{
int a, b;
cinab; //cin是标准输入流,此语句从键盘输入两个整数,依次存入a、b中
if(ab)
couta bendl;//cout是标准输出流,输出到屏幕
else
coutb aendl;//依次将“”连接的各项输出,endl表示换行
return EXIT_SUCCESS;
}
若从键盘输入:
4 3
则输出
3 4
通过上面的例子,相信您已经对输入输出流的使用有了一个大概的了解。下面一个例子演示如何利用输入输出流对文本文件进行读写操作,您也将从这个例子开始逐渐看到C++语法的方便之处。
[例2](文件的输入输出)从文件in.txt中输入两个整数,由小到大排序后输出到out.txt中,用空格分开。
[源程序]
#include fstream //要使用文件输入输出流必须的头文件
using namespace std; //要使用ifstream与ofstream必须的命名空间
ifstream inf(in.txt); //定义文件输入流inf,并关联到in.txt
ofstream ouf(out.txt); //定义文件输出流ouf,并关联到out.txt
int main(int argc, char *argv[])
{
int a, b;
infab; //从inf中输入两个整数
if(ab)
oufa bendl; //向ouf输出结果。
else
oufb aendl;
return EXIT_SUCCESS;
}
如果in.txt的内容为:
4 3
则out.txt的内容为:
3 4
由例2可以看出,对文本文件的输入输出与标准输入输出从格式上讲是一致的,只是需要定义一下文件输入输出流,且定义时只需说明文件名即可,文件的打开与关闭动作是C++自动完成的,用户不必处理,这样就不会出现忘记关闭文件而丢失数据的情况了。
二、“//”开始的单行注释。
上面的两个例子中其实已经使用这个语法了,一个语句行中从“//”开始后面的文字都是注释——换行后就不是了,因此这是“单行注释”,与常用的“/*”、“*/”不同。
三、有了bool类型。
C++也有“真正”的布尔类型了,就是“bool”,布尔型的变量可以有两个值true和false。其中“bool”、“true”和“false”都成为了C++的关键字。
四、可以按需要随时定义变量。
在C语言中,变量只能定义在所有可执行语句之前,这样,每当我们需要定义一个新变量时,都要向前翻。在C++中就不用,您可以“随时随地”地定义变量,当然,同一作用域中的变量仍然是不准重名的。这在下面的例子中可以看到。
五、结构体(struct)的名称、共用体(union)的名称及枚举(enum)的名称都可以直接用做类型名而定义变量。
直接用一个例子来说明即可。
[例3](结构体语法)从文件in.txt中读入十个学生的姓名与成绩,将学生信息按成绩由大到小排序后输出到o
您可能关注的文档
- 胞映射方法的研究与进展.pdf
- 被背弃老祖母__凯萨琳_安_波特.pdf
- 编码激励及脉冲压缩在超声测血流中的应用.pdf
- 编译原理SELECT()集合求法.ppt
- 编译原理-声明语句翻译.ppt
- 补充 游标和事务.ppt
- 补充:第七章 结构及链表.ppt
- 补充_原理图及PCB的设计.ppt
- 藏东丁青蛇绿岩中堆晶辉长岩锆石SIMSU_Pb定年和其意义.pdf
- 船舶及海洋工程本科专业培养方案.pdf
- 融合ChatBI与HeadlessBI新一代数据分析平台实践(27页 PPT).pptx
- 1.3.4++单细胞生物++课件-2025-2026学年人教版生物七年级上册.pptx
- 15.2+画轴对称图形-感知对称美+课件-2025-2026学年人教版(2024)八年级数学上册.pptx
- 5.1+延续文化血脉+课件-2025-2026学年统编版道德与法治九年级上册.pptx
- Unit+3+Family+ties+Developing+ideas课件+-2025-2026学年外研版(2024)七年级英语上册+.pptx
- 5.3+友善待人+课件-2025-2026学年统编版道德与法治八年级上册.pptx
- 18.1.1+从分数到分式(教学课件) 2025-2026学年人教版(2024)数学八年级上册.pptx
- 备战2026年中考作文考前提抢分模板与提分必备素材范文:记叙文高分模板(覆盖+十二大中考高频主题).docx
- 4.1+家的意味+课件-2025-2026学年统编版道德与法治七年级上册.pptx
- Unit8+It+must+belong+to+Carla+SectionB+1a_1d课件++2025-2026学年人教版(2012)九年级英语全册.pptx
最近下载
- 《婴幼儿动作发展与训练》教案 第5课 1~2岁幼儿粗大动作的发展与训练.docx VIP
- 思想政治教育方法论8概要.ppt VIP
- 高中英语课件7开课名师-郭贝老师from page to screen教学设计——福建 郭贝.pdf VIP
- 级配碎石(碎砾石)基层施工质量保证措施.docx VIP
- 《劳动关系与劳动法》历年模拟题(含答案).docx VIP
- 2025秋初中历史与八年级上册上课课件 第11课 五四运动.pptx
- 【麦职金本事】中级7月7日答题.docx VIP
- 《婴幼儿动作发展与训练》教案 第3课 0~1岁婴儿粗大动作的发展与训练.docx VIP
- 【数世咨询】现代WAF选型指南 2025.pdf VIP
- 市场监管考试题库及答案.doc VIP
文档评论(0)