
1.3.2 在Visual C++环境中实现C程序
Visual C++ 6.0(简称VC++或VC)提供了可视化的集成开发环境,主要包括文本编辑器、资源编辑器、工程创建工具、Debugger调试器等实用开发工具。Visual C++ 6.0分为标准版、专业版和企业版三种,但其基本功能是相同的。
下面系统地学习如何在Visual C++ 6.0中实现C程序的编辑和运行。
1.Visual C++ 6.0主框架窗口
在Windows系统任务栏中,选择“开始”→“所有程序”→Microsoft Visual Studio 6.0→Microsoft Visual C++ 6.0命令,即可启动Visual C++ 6.0集成开发环境,启动界面如图1-4所示。

图1-4 Visual C++ 6.0启动界面
2.在Visual C++ 6.0中编译C程序
(1)创建文件
在VC++中创建C程序文件有多种方式,现列举两种:
①在任意位置处创建一个记事本文件,保存格式由.txt修改为.c,如exam.c。启动VC++环境,选择菜单栏中的File→Open命令,在弹出的“打开”对话框中选择创建的exam.c文件,单击“打开”按钮,如图1-5所示,即可进入VC++的代码编辑窗口。

图1-5 打开exam.c文件
②启动VC++,选择菜单栏中的File→New命令,在弹出的New对话框中选择Files选项卡。在左边列出的选项中,选择C++ Source File或Text File选项,在右边File文本框中输入exam.c,单击Location文本框右侧的按钮修改保存的位置,如图1-6所示。单击OK按钮,即可进入VC++的代码编辑窗口。
(2)编辑代码并保存
①编辑代码:在VC++代码编辑区中输入exam.c的源代码,完成后如图1-7所示。源代码如下:

图1-6 创建exam.c文件

②保存:选择菜单栏中的File→Save命令(Save As…命令可修改原默认存储路径),也可单击工具栏中的“保存”按钮来保存文件。
(3)编译、连接、运行源程序
选择菜单栏中的Build→Compile exam.c命令(或单击工具栏中的按钮,或按【Ctrl+F7】组合键),在弹出的对话框中单击“是(Y)”按钮,这时系统开始对当前的源程序进行编译。在编译过程中,将所发现的错误显示在“输出区”窗口中,错误信息中指出错误所在行号和错误的原因。当程序出现错误时,根据提示信息修改源程序代码,再进行编译直至编译正确,如图1-8所示。

图1-7 编辑代码窗口

图1-8 输出窗口中的编译信息
当输出窗口中的信息提示为exam.obj-0 error(s),0 warning(s)时,表示编译正确。
选择菜单栏中的Build→Build exam.exe命令(或单击工具栏中的按钮,或按【F7】键),连接正确时,生成可执行文件exam.exe,如图1-9所示。该文件保存在exam.c同一文件夹下的Debug文件夹中。

图1-9 输出窗口中的连接信息
选择菜单栏中的Build→Execute Program exam.exe命令(或单击工具栏中的按钮,或按【Ctrl+F5】组合键),即可看到控制台程序窗口中的运行结果,如图1-10所示。
(4)关闭工作区
每次完成了对程序的操作后,必须安全地保存好已经建立的应用程序与数据,应正确地使用关闭工作区来终止工程。

图1-10 程序exam.c的运行结果
选择菜单栏中的File→Save Workspace命令,可以保存工作区的信息;选择菜单栏中的File→Close Workspace命令,可以终止工程、保存工作区信息、关闭当前工作区;选择菜单栏中的File→Exit命令,即可退出VC++环境。
3.菜单栏说明
菜单栏包括9个菜单项,如图1-11所示。菜单选择可以通过两种方法来进行:一种是单击所选的菜单,另一种是键盘操作,通过相应的快捷键来选择(同时按住【Alt】键和相应菜单提示的相应按键组合)。选中某个菜单后,就会出现相应的下拉式菜单。

图1-11 菜单栏
(1)File菜单
File菜单包含了各种对文件进行操作的选项,各命令的功能如下:
①New(【Ctrl+N】组合键):创建新的文件、工程、工作区或其他文档。
②Open(【Ctrl+O】组合键):打开已有的文件。可以打开的文件类型有C文件、C++文件、Web文件、资源文件、文本文件、项目文件和工作区文件。
③Close:关闭在代码编辑窗口中当前显示的文件。
④Open Workspace…:打开工作区文件。
⑤Save Workspace:保存当前打开的工作区文件。
⑥Close Workspace:关闭当前打开的工作区文件。
⑦Save(【Ctrl+S】组合键):保存代码编辑窗口中当前显示的文件。如果代码编辑窗口中没有显示任何文件,则此命令为禁用状态。
⑧Save As…:在弹出的“保存为”对话框中可以保存一个新建的窗口或将当前编辑窗口的内容保存到一个不同的文件中。
⑨Save All:保存所有窗口中的文件信息。
Page Setup:在弹出的“打印设置”对话框中设置和格式化打印结果。
Print…(【Ctrl+P】组合键):在弹出的“打印”对话框中使用“页面设置”设置的格式,打印当前活动窗口中的文件。
Recent Files:该级联菜单包含有最近打开的文件名,默认最多可列出4个文件名。选择其中的任意文件名,就会打开相应文件。
Recent Workspace:该级联菜单包含有最近打开的工程区名,默认最多可列出4个工程区名。选择其中的任意工程区名,就会打开相应工作区。
Exit:退出编程环境。当选择此命令时,如果还有修改后未经保存的文件,则会弹出提示对话框。
(2)Edit菜单
Edit菜单中的命令主要是对源程序代码中的内容进行编组和搜索,各命令的功能如下:
①Undo(【Ctrl+Z】组合键):撤销用户最近一次的编辑修改操作。
②Redo(【Ctrl+Y】组合键):恢复被撤销的操作。
③Cut(【Ctrl+X】组合键):将当前活动窗口中选定的内容剪切到剪贴板中,并覆盖剪贴板上原有的内容。
④Copy(【Ctrl+C】组合键):将当前活动窗口中选定的内容复制到剪贴板中,并覆盖剪贴板上原有的内容。
⑤Paste(【Ctrl+V】组合键):将剪贴板中的内容复制到当前光标所在位置,如果存在高亮被选对象,则用剪贴板中内容将其替换。
⑥Delete(【Delete】):删除被选内容。
⑦Select All(【Ctrl+A】组合键):选定当前活动窗口中的全部内容。
⑧Find…(【Ctrl+F】组合键):查找指定的字符串。
⑨Find in Files…:在指定的多个文件(夹)中查找字符串。
Replace(【Ctrl+H】组合键):替换指定的字符串。
GoTo(【Ctrl+G】组合键):将光标移动到指定位置处。
Bookmarks…(【Alt+F2】组合键):在光标当前位置处定义一个书签。
Advanced:级联菜单,可进行其他一些编辑操作,如将指定内容进行大/小写转换。
Breakpoints…(【Alt+F9】组合键):在程序中设置断点。
List Members:生成成员列表。
Type Info:获得类型信息。
Parameter Info:获得参数信息。
Complete Word:显示词语自动完成选项。
(3)View菜单
View菜单中的命令主要是对执行的中间过程进行查看,各命令的功能如下:
①ClassWizard(【Ctrl+W】组合键):弹出类编辑对话框,在对话框中添加变量、消息处理函数或将资源和代码相连。
②Resource Symbols:显示和编辑资源文件中的资源标识符(ID号)。
③Resource Includes:修改资源包含文件。
④Fill Screen:切换到全屏显示方式。
⑤Workspace(【Alt+0】组合键):显示并激活项目工作区窗口。
⑥Output(【Alt+2】组合键):显示并激活输出窗口。
⑦Debug Windows:操作调试窗口。
⑧Refresh:刷新选定的内容。
⑨Properties(【Alt+Enter】组合键):编辑当前选定对象的属性。
(4)Insert菜单
Insert菜单中的命令主要进行插入操作,各命令的功能如下:
①New Class…:插入一个新类。
②New Form…:插入一个新的表单类。
③Resource…(【Ctrl+R】组合键):插入指定类型的新资源。
④Resource Copy…:创建一个不同语言的资源副本。
⑤File As Text:在当前光标位置处插入文本文件内容。
⑥New ATL Object…:插入一个新的ATL对象。
(5)Project菜单
Project菜单中的命令主要是项目的操作,各命令的功能如下:
①Set Active Project:激活指定项目。
②Add To Project:将组件或外部的源文件添加在当前的项目中。
③Dependencies…:编辑当前项目的依赖关系。
④Settings…(【Alt+F7】组合键):修改当前编译和调试项目的一些设置。
⑤Export Makefile…:生成当前可编译项目的(.mak)文件。
⑥Insert Project into Workspace…:将项目加入到项目工作区中。
(6)Build菜单
Build菜单中的命令主要是对项目文件进行编译、连接、配置等操作,各命令的功能如下:
①Compile(【Ctrl+F7】组合键):编译C或C++源代码文件。
②Build(【F7】键):生成应用程序的.exe文件(编译、连接,又称编连)。
③Rebuild All:重新编连整个项目文件。
④Batch Build:成批编连多个项目文件。
⑤Clean:清除所有编连过程中产生的文件。
⑥Start Debug:级联菜单,包含调试的一些操作。
⑦Debugger Remote Connection…:设置远程调试连接的各项环境设置。
⑧Execute(【Ctrl+F5】组合键):执行应用程序。
⑨Set Active Configuration:设置当前项目的配置。
Configurations…:设置、修改项目的配置。
Profiler:为当前应用程序设定各选项。
(7)Tools菜单
Tools菜单中的命令主要是浏览用户程序中定义的符号、定制菜单与工具栏、激活常用工具或更改选项和变量的设置。
(8)Window菜单
Window菜单中的命令主要是对窗口进行操作,各命令的功能如下:
①New Window:再打开一个文档窗口显示当前窗口内容。
②Split:文档窗口切分命令。
③Docking View(【Alt+F6】组合键):浮动显示项目工作区窗口。
④Close:关闭当前文档窗口。
⑤Close All:关闭所有打开过的文档窗口。
⑥Next:激活并显示下一个文档窗口。
⑦Previous:激活并显示上一个文档窗口。
⑧Cascade:层铺所有的文档窗口。
⑨Tile Horizontally:多个文档窗口上下一次排列。
Tile Vertically:多个文档窗口左右一次排列。
Windows…:文档窗口操作。
(9)Help菜单
Help菜单中的命令主要是为用户提供大量的帮助信息。
相关知识2
1.运行
程序源代码是静态的,只有运行起来才能发挥作用。编译运行是最经典、效率最高的运行方式。C程序的高性能在很大程度上归功于编译。
2.内存
程序在运行时是和数据一起保存在内存中、由CPU执行的。程序和数据都是以二进制形式存储的,存储单位是字节。每台计算机的内存都能存储一定字节数的内容。通常,每个存储单元能保存一个字节的数据。程序和数据怎样存储和该往哪里存储并不需要用户操心,操作系统和编译器会自动处理。
课后讨论
C程序上机调试的步骤有哪些?