- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Hello World的N种写法
“Hello World!”的N种写法
关键字:Hello World!,C/C++基础,入门
作者:佚名? ? 更新:2006-11-30 01:08:48? ? 浏览:19092
#include?stdio.h#include?iostreamint?main(){? ? printf(Hello?world!);? ? ? ? ? ? ? ? ? ?//?教科书的写法Hello?world!);? ? ? ? ? ? ? ? ? ? ?//?我最喜欢的Hello???world!);? ? ? ? ? ? ? ?//?拼接字符串Hello?world! std::endl;?//?C++风格的教科书写法return?0;}特别需要注意的是,在C/C++里,如果两个字符串之间除空白符以外没有任何东西,编译器会自动认为这两个字符串是连在一起的字符串。这样,如果一个字符串过长,可以用这种方法换行来写,既不浪费性能,又美观。2.?用宏写的“Hello?world!”在C/C++里,宏是一个神奇的东西。特别是在C语言中,宏可以帮我们做一些“又脏又累”的活,包括拼接代码片断、隐藏繁琐的实现细节等等。其中特别有趣的是“#”的用法,它可以“提取”参数的名字,把它变成字符串。#include?stdio.h#define?Say(sth)?puts(#sth)int?main(){? ? return?Say(Hello?world!);}请注意,这个Hello?world可是完全没有出现引号哦!3.?断章取义的“Hello?world!”字符串是一种常量这当然毫无疑问,但是它的类型是什么,这就需要考虑一下了。使用C++的typeid就可以这个问题的答案,而且只要是符合C或C++标准的编译器就应该是一样的结果。比如字符串“Hello?world!”,它的类型就是?char?const?[13]。知道了这个,就可以写出以下的“Hello?world!”:#include?stdio.hint?main(){? ? return?puts(Do?not?say:?Hello?world![12]);}4.?退出时运行的“Hello?world!”大家都知道?main?函数退出意味着程序结束,可是这并不完全正确,我们完全可以在?main?函数退出以后做很多事呢——比如说,输出“Hello?world!”。这个功能依赖于C标准库中提供的函数?atexit(),调用这个函数并注册自己的回调函数就行。需要注意,这个函数可以调用多次,最后注册的函数最先执行。#include?stdio.h#include?stdlib.hvoid?say(){? ? printf(world!);}void?sth(){? ? printf(Hello?);}int?main(){? ? return?atexit(say),?atexit(sth);}5.?读取自己的“Hello?world!”C/C++的编译器提供了一些有用的内置宏,最常用的就是?__FILE__?和?__LINE__?了。其中,__FILE__?代表当前的源文件的文件名,嗯,对了,如果我们让这个程序读取自己的源文件,不就可以做一个很有意思的“Hello?world!”了么?//?Hello?world!#include?iostream#include?fstream#include?stringint?main(){? ? std::ifstream?ifs(__FILE__);? ? std::string?say,?some,?word;? ? ifs??say??some??word;? ? std::cout some ? word;? ? return?0;}6.?话分两头的“Hello?world!”有了C++的类,我们就可以光明正大的在?main?函数执行之前和之后做感兴趣的事情了。我们可以声明一个全局的类的实例,这样,在?main?函数执行之前会调用这个类的构造函数,结束之后则会调用析构函数。#include?iostream// 本文转自 C++Builder研究 - /article.asp?i=999d=v433i2class?say{public:? ? say()? ? {? ? ? ? std::cout Hell;? ? }? ? ~say()? ? {? ? ? ? std::cout world!;? ? }}hello;int?main(){? ? std::cout o?;?
文档评论(0)