第一范文网 - 专业文章范例文档资料分享平台

编程摇篮的C++Builder - 6教程

来源:用户分享 时间:2025/6/9 6:30:40 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

如果你的CB停留在前面Windows版Hello World工程中,请确保退出Hello World的窗口。然后选主菜单:File | Close All,关闭Windows版Hello World工程。

依次点击菜单:File | New,出现一个 New Items对话框,等待我们选择要新建什么。 默认的选中项是上页图中New页内的第一个:Application。如果选它,确认后的工程就是上一节我们创建的空的工程。但现在我们要建立一个DOS风格的程序。

选上图中加有红圈的 Console Wizard (控制台程序向导)。确认后出现向导的第一步:

请您确认将对话框中的相关选项设置成和上图一致,然后点OK按钮。没有表单,只有代码编辑框窗口(第一节的“2”号窗口)内中代码为: //------------------------------------------------------------- #pragma hdrstop

//------------------------------------------------------------- #pragma argsused

int main(int argc, char* argv[]) {

return 0; }

//-------------------------------------------------------------

这是C语言的主函数,或者称为入口函数。程序从这个地方作为起点开始执行,以

13

后会有更多讲解。同样地,这也是一个程序框架,一个空白的DOS程序框架。让我们选菜单中Run | Run或直接按F9键,看看结果和前面的Windows空白程序会有什么不同?

眼前出现一个黑色的窗口,然后就一晃而过,回到了C++Builder的界面。 黑色的窗口,在不同版本的Windows中有不同的叫法和不同的实现机制,但都是Windows操作系统兼容DOS的方式。这种DOS方式在术语上称为“控制台/ console”。如果你不明白什么是DOS,请通过其它途径另外学习。

2、用控制台输出“Hello world”:

我们需要加入三行代码才能实现DOS版的Hello World;以下黑体部分为你需要在代码中加入的内容:

(约定:在代码中使用黑体,用来表示您应该输入的部分) //------------------------------------------------------------- #include #pragma hdrstop

//------------------------------------------------------------- #pragma argsused

int main(int argc, char* argv[]) {

printf(\getchar(); return 0;

}

//-------------------------------------------------------------

这是一个很短的程序,我们稍微做点解说:

如果作一个大的程序,代码一多自已都会看晕,所以就需要在代码中加一些注释,用以解说某行或某段代码的用途,或者用以让代码显得清晰。C++中,常用双斜杠 “//”开始,一直到该行结束的内容来代表注释。上面的代码中,有三行: //-------------------------------------------------------------

这正是用来从视觉上分隔代码的注释。注释对程序的运行没有任何影响,其作用只用来给人看的。当编译器编译进,它会过滤掉所的有注释内容。

#pragma hdrstop和#pragma argsused两行为编译预处理命令,当编译器在编译本段代码,预处理命令会影响编译的某些行为。

#include 是我们新加的一行,stdio.h是一个文件的名字,扩展名是.h。h是head的意思,所以被称为头文件。这个文件在哪里呢?在你的机器里,在C++Builder安装后的文件夹内的某个子文件夹内;在这个文件夹内,C++Builder为我们提供了上千个头文件。

头文件起什么作用呢?

C++Builder为我们提供了函数库(RTL /runtime library)和类库(VCL);而Windows

14

操作系统(Windows用C写成)则向我们提供了API函数库。“库”是“储存”大量实用的解决各种问题,实现各种功能的“工具”的地方,它们都通过头文件列出清单。

当我们写上#include 这一行时,我们是在向编译器说明:本文件中的程序需要用到stdio.h头文件中所列的某些函数;“include”正是包含之意。 printf(\getchar();

printft和getchar正是两个在stdio.h中列出来的函数。如果没有#include 这一行,编译器便会报错说不认识这两个符号。换句话说,include语句让编译器知道我们要用的库函数在哪一个库里。我们会在下一节“简单程序调试”中做相应试验。

Print是打印之意,而f则为format,二者结合意为“有格式地打印”。我们的Hello World不需要任何格式。至于getchar从字面上理解是“得到字符”,事实上就是程序会在此处停下来,等待用户输入字符,直到输入一个回车符,程序继续执行。在我们的这个程序里,继续执行的结果是碰上这一行: return 0;

return的意思是返回,当主函数main返回时,整个程序就结束了。所以,使用这个getchar()的目的很明显:让程序在结束之前可以等我们一下(因为我们需要看一眼输出的“Hello World”)。

Printf的作用是输出(output)内容,而getchar()则是等待你输入,从这一点看,我们也可以理解前面include为什么是 stdio.h了。std是英文标准的前三个字符,而I和O分别是input和output的首字母。

说了很长,但程序运行结果却很简单,这是按F9后的运行结果:

按回车结束程序。结束后,别忘了保存我们的第二个程序。 四、简单程序调试:

1、编译期错误与运行期错误:

如果我在上面的程序输出时,打出的字幕不是“Hello,world”,而是“Hello,word”。你一定会说“哎,哥们,程序错了!”。于是,我就要去代码中查找有关输出的那一句,一看,哟,真少写了一个‘l’。将这一错吴改正,重新运行,检查结果。

这就是一个调试过程,发现错误;查找出错原因;改正;再运行。当然,由于很多时候我们也不是非要等到发现错误了才去检查,有时我们会主动一步步去事先主动检查是否有错。必竟BUG总是常见的。程序错误(BUG)表现上各式各样,但若是从其“发作”的时间上分,则可分为“编译期错误”和“运行期错误”。如果上面说的错误属于后者,因为它对编译过程并不产生什么阻碍,编译可以通过,错误将在运行中表现出来

15

(按时间分还有一种称为“链接期错误”,这里不说)。

在上一节的代码中,我们来故意制造一个编译期的BUG,我们故意将最后一句代码:return 0; 行末的分号“;”删除,代码如下: int main(int argc, char* argv[]) {

printf(\getchar();

return 0 //根据约定,我们用粗斜体表示修改过的代码 }

写好代码后按F9,程序并没有跑起来。但在代码编器窗口下面,出现一消息框(如果你没有发现,请在代码窗口中点鼠标右键,将出现右键菜单,选:Message View项)。

编译过程是一个相当复杂的过程,在编译之前,代码会被做很多格式上的转换,人写代码出错的原因也五花八门,所以想让编译器判断到底你犯了什么错吴事实上是很难的,但CB的编译出错消息仍竭尽全力让我们找到出错原因:

[C++ Error]:错误类型;这是在告诉我们,这是一个C++语言语法方面的错误。编译器说对了,因为我们少写一个分号,确实是犯了C++语法错误。

Unit.cpp(13):错误位置;说的是在Unit.cpp这个文件内的第13行,出错的文件显然是说对了,但行数却稍有偏差,少了分号的那行其实是第12行,从状态栏可以看到当前光标位置的行列数。

E2378:错误编号,CB对各错误消息进行了编号。

Return statement missing;错误消息;在这里这个消息完全正确,“return”语句丢了分号。

在使用中,并不是每回都能幸运得到这样准确的错误报告和消息。比如,同样是去掉分号,但这回是把return 0一句的分号补上,转而去掉printf(“Hello world!”)这一行的分号,编译出错消息是这样:

16

搜索更多关于: 编程摇篮的C++Builder - 6教程 的文档
编程摇篮的C++Builder - 6教程.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9pubi8ix9n3uh255bmlf_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top