版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章VisualC++6.0概述1.1C++程序设计语言与VisualC++1.2VisualC++6.0的运行环境1.3VisualC++6.0的不同版本1.4VisualC++6.0的菜单栏1.5第一个VisualC++程序1.6开发环境的初步实践思考题
1.1C++程序设计语言与VisualC++
1.1.1C++程序设计语言
C++程序设计语言是从C语言发展而来的。C语言具有许多优点,但它是一种面向过程的编程语言,已不能满足运用面向对象方法开发软件的需要。因此,1980年AT&T贝尔实验室在C语言的基础上开发出了C++语言。C++支持面向对象的程序设计,其引入了类的机制,因此最初的C++语言被称为“带类的C语言”。以后经过不断完善,成为目前的C++语言。
C++语言的主要特点表现在两个方面:一是全面兼容C语言;二是支持面向对象的方法。
C++语言既保持了C语言的简洁、高效和接近汇编语言等特点,又对C语言的类型系统进行了改革和扩充,因此C++语言比C语言更安全,它的编译系统能检查出更多的类型错误。1.1.2VisualC++6.0的特点
VisualC++6.0是Microsoft公司推出的功能最强大、最复杂的语言产品之一,它应是目前为止在Windows环境下进行大型软件开发的首选。其特点如下:
●VisualC++的语法符合ANSIC++标准,并在此基础上针对Windows操作系统增加了一些语句。
●集成了MFC(MicrosoftFundationClass)类库,MFC封装了WindowsAPI函数和消息,使程序员可以使用MFC高效率地开发各种应用程序。
●提供了MFCAppWizard,可方便地生成程序框架。
●提供了基于MFC的ClassWizard,通过它可以轻松地完成对各种MFC类的使用与维护。
1.2VisualC++6.0的运行环境
VisualC++6.0运行所需的软、硬件环境应至少满足以下要求:
●较新版本的Windows或WindowsNT,例如Windows98、Windows2000、WindowsXP或者WindowsNT4.0以及它们的更新版本。
●IBMPC机及其兼容机,最好具有Pentium以上的微处理器。
●至少20M内存(WindowsNT则需要24M内存),最好使用64M内存或者更多。
●至少50M自由硬盘空间。
●IE5.0或者更高版本的IE。
●VGA显示器。
●CD-ROM驱动器,用于联机信息。
1.3VisualC++6.0的不同版本
VisualC++6.0包含了三种版本,按照功能由高到低的顺序如下。
1.Standard(标准版)
标准版也可以叫学习版,这个版本只包括了VisualC++6.0的基本功能(如编译器、MFC、集成开发环境等),帮助用户学习C语言、C++语言以及其他的一些技术(如MFC、ActiveX、ODBC等)。学习版中去掉了许多工具,比如没有提供程序代码的分析、优化以及MFC库的静态链接等,此版本不能用于商业软件的开发。
2.Professional(专业版)
除了标准版的功能以外,专业版本还包括更多的工具和更强大的功能(如优化链接库等),同时它还可以用于商业软件的开发。
3.Enterprise(企业版)
企业版是功能最强大的版本。它在专业版的基础上提供了客户/服务程序开发工具,还包括了SourceSafe源代码控制等其他工具。
其中Professional版和Enterprise版差别不大,而且三个版本均可以满足本书的学习需要。
1.4VisualC++6.0的菜单栏
菜单栏由多个菜单组成,选择菜单有两种方法:一种是用鼠标左键单击所选的菜单,另一种是键盘操作,即同时按下Alt键和所选菜单的热键字母(即带下划线的字母,如“文件”中的F),选中某个菜单后,就会出现相应的下拉式子菜单。在下拉式子菜单中,有些菜单选项的右边对应列出了相应的快捷键(如“保存”对应的Ctrl+S),表示按快捷键将直接执行菜单命令,这样可以减少进入多层菜单的麻烦;有些菜单后面有三个圆点(如“新建...”),表示选择该项后将自动弹出一个对话框;有些菜单选项后面带有黑三角箭头,表示选择该项后将自动弹出级联菜单。如果下拉式子菜单中的某些选项显示为灰色,则表示这些选项在当前条件下不能选择。此外,在窗口的不同位置单击鼠标右键将弹出快捷菜单,从快捷菜单中可以执行与当前位置最为相关的、需频繁执行的命令。本节我们将详细介绍VisualC++6.0的菜单栏。
VisualC++6.0的菜单栏中包括以下菜单标题:文件、编辑、查看、插入、工程、编译、工具、窗口和帮助,每个标题对应一类操作。下面详细介绍各个菜单标题的功能。1.4.1“文件”菜单
“文件”菜单中包含了用于对文件进行各种操作的命令选项,如图1-1所示。图1-1“文件”菜单
1.“新建”菜单项
“新建”菜单项用于创建一个新的文档、项目或工作区。下面详细介绍其用法。
鼠标左键单击(本书后文中将“鼠标左键单击”简称为“单击”)“新建”菜单项,出现“新建”对话框。
在“新建”对话框中有4个选项卡:“文件”选项卡、“工程”选项卡、“工作区”选项卡、“其他文档”选项卡。每个选项卡都包含一些特定类型的文件。
1)创建新的文件
如果要创建新的文件,可以在“新建”对话框中的“文件”选项卡(如图1-2所示)中,单击想要创建的文件类型,然后在“文件”文本框中输入文件名,此时在“目录”框中将显示出VisualC++6.0自动为该文件生成的默认保存位置(用户可在此框中修改该文件的目录),最后单击“确定”按钮完成操作。如果要添加新文件到已有的项目中,则需选中“添加工程”复选框并选择项目名。图1-2“新建”对话框中的“文件”选项卡在“文件”选项卡中,用户能够创建以下类型的文件:
①ActiveServerPage——创建活动服务页;
②BinaryFile——创建二进制文件;
③BitmapFile——创建位图文件;
④C/C++HeaderFile——创建C/C++的头文件,即以.h为扩展名的文件;
⑤C++SourceFile——创建C++源文件,即以.cpp为扩展名的文件;
⑥CursorFile——创建游标(鼠标指针)文件;
⑦HTMLPage——创建HTML文件;
⑧IconFile——创建图标文件;⑨MacroFile——创建宏文件;
⑩ResourceScript——创建资源脚本文件;
ResourceTemplate——创建资源模板文件;
SQLScriptFile——创建SQL脚本文件;
TextFile——创建文本文件。
2)创建新的项目
如果要创建新的项目,可以在“新建”对话框的“工程”选项卡(如图1-3所示)中,单击要创建的项目类型,然后在“工程”文本框中键入项目的名字。如果要添加新的项目到打开的工作区中,则需选择“添加至现有工作区”单选框,否则将自动创建包含新项目的新工作区。若要使新项目成为已有项目的子项目,则应选中“从属性的”复选框,并制定项目名。图1-3“工程”选项卡在“工程”选项卡中,用户能够创建以下类型的项目:
①ATLCOMAppWizard——利用ATL向导创建ATL应用程序;
②ClusterResourceTypeWizard——利用向导创建群集资源类型;
③CustomAppWizard——创建自定义的AppWizard(应用程序向导);
④DatabaseProject——创建数据库项目;
⑤DevStudioAdd-inWizard——创建自动化宏;
⑥ExtendedStoredProcWizard——创建扩展存储过程应用程序,这是VC++6.0新添项目类型;⑦ISAPIExtensionWizard——创建Internet服务器或过滤器;
⑧Makefile——创建Make文件;
⑨MFCActiveXControlWizard——利用向导创建MFCActiveX控件;
⑩MFCAppWizard(dll)——利用向导创建MFC动态链接库文件;
MFCAppWizard(exe)——利用向导创建MFC可执行文件;
UtilityProject——创建实用项目,这是VC++6.0新添项目类型;
Win32Application——创建Win32应用程序;
Win32ConsoleApplication——创建Win32控制台应用程序;
Win32Dynamic-LinkLibrary——创建Win32动态链接库;
Win32StaticLibrary——创建Win32静态链接库。
3)创建新的工作区
如果要创建新的工作区,可以从“新建”对话框的“工作区”选项卡中选择一种工作区类型(如图1-4所示),然后在“工作区名字”文本框中键入工作区的名字。图1-4“工作区”选项卡
4)创建新的文档
如果要创建新的文档,可以从“新建”对话框的“其他文档”选项卡中单击要创建的文档类型(如图1-5所示),然后在“文件”文本框中键入文档名。如果要添加新的文档到已有的项目中,则需选中“添加工程”复选框,然后选择项目名称。
用户能够创建以下类型的文档:
①MicrosoftExcel工作表;
②MicrosoftExcel图表;
③MicrosoftPowerPoint演示文稿;
④MicrosoftWord文档。图1-5“其他文档”选项卡
2.“打开”菜单项
该选项用于打开已有的文件。单击该菜单项将弹出“打开”对话框,可以从中选择要打开文件所在的驱动器、路径以及文件名,并将其打开。与该选项对应的操作按钮是。
3.“结束”菜单项
该选项用于关闭已打开的文件。如果系统中包含有多个已打开的文件,那么使用该选项就会将当前活动窗口或选定窗口中的文件关闭。激活或者选择某一窗口可以通过用鼠标单击该窗口来完成。如果某个文件还未保存就被关闭,则系统会提示用户是否保存该文件,因此用户不必担心文件的丢失。
4.“打开工作区”菜单项
该选项用于打开一个已经存在的工作区。工作区文件以.dsw为扩展名,每一个工作区对应一个项目,其中记录了应用程序的源文件、头文件、资源文件和信息。选择该项将弹出“OpenWorkspace”对话框。
5.“保存工作区”菜单项
该选项用于保存当前工作区。
6.“关闭工作区”菜单项
该选项用于关闭当前工作区。
7.“保存”菜单项
该选项用于保存活动窗口或者当前选定窗口中的文件内容。与该选项对应的操作按钮是。如果所要保存的文件还未被保存过,那么系统会弹出“保存为”对话框,提示用户输入有效的文件名。
8.“另存为”菜单项
该选项用于将当前文件另存为一个新的文件名,这样不会使新文件覆盖原来的文件。
9.“全部保存”菜单项
该选项用于保存所有打开的文件。与该选项对应的操作按钮是。
10.“页面设置”菜单项
该选项用于进行页面布局设置,单击该菜单项将打开“打印设置”对话框,用户能够设置页面的页眉、页脚以及上下左右页边距等属性。
11.“打印”菜单项
该选项用于打印当前活动窗口中的内容。单击该菜单项将打开“打印”对话框,用户在设置了打印机的类型和打印范围之后,即可进行打印。
12.“新近的文件”菜单项
该选项用于列出用户最近打开的文件名,单击某个文件名就可打开相应的文件。
13.“新近的工作区”菜单项
该选项用于列出用户最近打开的工作区名,单击某个工作区名就可打开相应的工作区。
14.“退出”菜单项
该选项用于退出VisualC++6.0,并显示对话框,询问用户是否需要保存修改的内容。1.4.2“编辑”菜单
“编辑”菜单包含所有与文件编辑操作有关的命令选项。如图1-6所示。图1-6“编辑”菜单
1.“撤销”菜单项
该选项用于撤销上一次的操作,与该选项对应的操作按钮是。
2.“重复”菜单项
该选项用于恢复最近一次撤销的操作。与该选项对应的操作按钮是。
3.“剪切”菜单项
该选项用于将选中的文本剪切掉,并将其移到剪贴板中。与该选项对应的操作按钮是。
4.“拷贝”菜单项
该选项用于将选中的文本拷贝至剪贴板中。与该选项对应的操作按钮是。
5.“粘贴”菜单项
该选项用于将当前剪贴板上的内容粘贴到当前插入点处。与该选项对应的操作按钮是。
6.“删除”菜单项
该选项用于删除选中的文本。
7.“全部选择”菜单项
该选项用于选中整个文档。单击该菜单项,将会看到整个编辑区中的文本都反色显示。
8.“查找”菜单项
该选项用于查找指定字符串。单击该菜单项将打开“查找”对话框,如图1-7所示。用户能够指定需要查找的字符串,并设置查找操作的一些高级属性,如全字匹配、区分大小写、搜索方向等。图1-7“查找”对话框
9.“查找文件”菜单项
该选项用于在多个文件中查找字符串。
10.“替换”菜单项
该选项可实现用其他字符串替代指定字符串。
11.“定位”菜单项
该选项用于将光标移动到指定位置。单击该菜单项将打开“定位”对话框,用户可选择指定行号、地址、书签等使光标跳到光标的某个位置。
12.“书签”菜单项
选择该选项将弹出“书签”对话框,用户可以设置或取消书签。书签的作用是在源文件中做标记。下面介绍设置书签的操作步骤。
(1)将光标移至需要设置书签的位置。选择“编辑/书签”命令,打开“书签”对话框,如图1-8所示。
(2)在“名字”文本框中输入想要创建的新书签名,例如BookMark1。此时,原来处于灰白状态的按钮“添加”已经可用,单击按钮,添加新书签。最后,单击按钮关闭对话框。
在上面,我们已经设置了一个名为“BookMark1”的书签。那么如何使用该书签直接跳到该行呢?图1-8“书签”对话框其操作步骤如下:
(1)打开“书签”对话框,可以看见该对话框的下拉列表部分列出了已经设置过的各个书签,“BookMark1”也在其中。
(2)选中“BookMark1”书签,此时原来处于灰白状态的“定位”按钮已经可用,单击按钮即可直接跳到书签所对应的行。用户也可在下拉列表中直接双击书签达到目的。
当用户想要删除某个书签时,只需在“书签”对话框中选中该书签,再单击按钮即可。
13.“高级”级联菜单项
“高级”级联菜单用于实现一些高级编辑操作,如图1-9所示。图1-9“高级”级联菜单①IncrementalSearch——用于启动一个向前的递增搜寻操作,例如,用户在“查找”对话框中定义搜索的字符串为“text”,此后每执行一次IncrementalSearch,VisualC++6.0将自动向前寻找字符串“text”;
②FormatSelection——使用智能的缩排方法来格式化选中文本;
③TabifySelection——在选中文本中使用制表符来替代空格;
④UntabifySelection——在选中文本中使用空格来替代制表符;
⑤MakeSelectionUppercase——将选中文本变为大写;
⑥MakeSelectionLowercase——将选中文本变为小写;
⑦ViewWhitespace——用于显示/隐藏制表字符。
14.“断点”菜单项
选择该选项将弹出“Breakpoints”对话框,如图1-10所示。用户可以设置、删除和查看断点。
断点是程序调试中不可或缺的重要工具。当在调试时,当程序执行到断点处将会自动暂停,以方便用户进行调试。图1-10“Breakpoints”对话框
15.其他编辑菜单项
“ListMembers”菜单项用于打开一个下拉列表框,其中列出了VisualC++6.0中定义的各种常量、函数,用户可将该列表中的内容粘贴到文件中去。
“TypeInfo”菜单项可以显示变量、函数和方法的语法,用户只需选中一个变量(或函数、方法),再单击“编辑”菜单中的“TypeInfo”,该变量(或函数、方法)下方将显示出语法格式。
“ParameterInfo”菜单项用于显示指定函数的参数格式。先选中一个函数,再单击“编辑”菜单中的“ParameterInfo”,该函数下方将显示出参数的格式。
“CompleteWord”菜单项用于完成一条语句。1.4.3“查看”菜单
“查看”菜单中包含用于检查源代码和调试信息的各种命令选项,如图1-11所示。图1-11“查看”菜单
1.“建立类向导”菜单项
该选项用于编辑应用程序的类,并将资源与代码连接起来。
2.“ResourceSymbols”菜单项
选择该选项将打开“资源符号”对话框,从中可以浏览和编辑资源符号,如图1-12所示。资源符号是映射到整数值上的一串字符,可以在源代码或资源编辑器中通过资源符号来引用资源。
3.“ResourceIncludes”菜单项
选择该选项将自动弹出“资源”对话框,如图1-13所示。在该对话框中可以修改资源符号文件名和预处理器指令。图1-12“资源符号”对话框图1-13“资源”对话框
4.“全屏幕显示”菜单项
该选项用于打开/关闭全屏显示模式。
5.“工作区”菜单项
该选项用于激活工作区窗口,工作区窗口位于工具栏左下方的子窗口。
6.“输出”菜单项
该选项用于激活输出窗口。
7.“调试窗口”级联菜单项
该菜单项用于显示调试信息窗口。其包含如下菜单项:
①Watch——激活Watch窗口,Watch窗口用于显示变量或表达式的值在程序运行中的变化;
②CallStack——激活CallStack窗口,CallStack窗口用于显示在程序中已经被调用且尚未返回的函数;
③Memory——激活Memory窗口,Memory窗口用于显示当前内存中的内容;
④Variables——激活Variables窗口,Variables窗口中包含当前语句和上一条语句中的变量值、当前函数的局部变量值以及this指针指向的对象信息;⑤Registers——激活Registers窗口,Registers窗口用于显示当前CPU各通用寄存器和状态寄存器的值;
⑥Disassembly——显示源程序的反汇编代码;
⑦Refresh——用于刷新选中的内容;
⑧Properties——用于显示当前选中对象的属性表对话框,用户可以选择一个类或一个函数或一个控件,单击该菜单项打开其属性表对话框。1.4.4“插入”菜单
使用“插入”菜单中的命令选项,用户可以向当前项目中插入新的类或新的资源、插入文件到文档中、插入新的ATL对象到项目中。“插入”菜单如图1-14所示。图1-14“插入”菜单
1.“新建类”菜单项
该选项用于创建新类,并将其添加到当前项目中。选中该菜单项后将弹出“新建类”对话框, 用户可在此对话框中指定新类的名称、基类以及是否支持自动化等属性信息,VisualC++6.0将会自动生成新类的头文件和实现文件。
2.“新建形式”菜单项
该选项用于创建新表单,并将其添加到当前项目中,其使用方法与“新建类”菜单项相同。
3.“资源”菜单项
选中该菜单项,用户能够创建任何类型的资源,包括加速键资源、位图资源、光标资源、对话框资源、HTML文档、图标资源、菜单资源、字符表资源以及版本信息等,并且这些资源都是以可视化方式创建的。VisualC++6.0将会自动生成资源的描述文件。
4.“资源拷贝”菜单项
该选项用于创建选中资源的备份。
5.“FileAsText”菜单项
选中该菜单项可以将一个已存在的文件插入到文档中的当前光标处。
6.“新建ATL对象”菜单项
选中该菜单项可以将一个新的ATL对象添加到当前项目中。1.4.5“工程”菜单
“工程”菜单中的各命令选项用于管理项目和项目工作区,如图1-15所示。图1-15“工程”菜单
1.“设置活动工程”菜单项
该选项用于选择指定项目为当前工作区中的活动项目。
2.“添加工程”菜单项
该选项用于将文件、文件夹、数据连接、组件或控件添加到当前项目中,如图1-16所示。
①新建——用于在当前项目工作区中创建一个新的文档;
②NewFolder——用于向当前项目中添加一个新文件夹;
③Files——用于将一个文件或多个文件添加到当前项目中;
④DataConnection——用于向当前项目中添加数据连接;
⑤ComponentsandControls——用于将部件或ActiveX控件添加到当前项目中。图1-16“添加工程”子菜单项
3.“从属性”菜单项
选中该菜单项将弹出“工程属性”对话框,如图1-17所示。用户可以在该菜单项中编辑项目的依赖关系。图1-17“工程属性”对话框
4.“设置”菜单项
选中该菜单项将弹出“ProjectSettings”对话框,如图1-18所示。用户可以在该菜单项中为项目配置指定不同的设置说明。图1-18“ProjectSettings”对话框
5.“输出制作文件”菜单项
选中该菜单项将按外部制作文件格式导出可建立的项目。
6.“插入工程到工作区”菜单项
选中该菜单项可以插入已有的项目到工作区中。1.4.6“编译”菜单
“工程”菜单中的各命令选项用于编译、创建、调试和执行应用程序,如图1-19所示。
①编译4.cpp——用于编译当前在源代码编辑窗口中打开的文件,其编译结果(包括错误信息、警告信息等)显示在输出窗口中;
②构件4.exe——用于生成项目,即编译、连接当前项目中所包含的所有文件;
③重建全部——该选项在编译和连接项目时,不管其标志日期是何时,一律重新进行编译和连接;
④批构件——用于一次生成多个项目;图1-19“编译”菜单⑤清洁——用于删除当前项目中的任何中间文件和输出文件;
⑥开始调试——用于进行一些简单的调试工作;
⑦调试程序远程连接——用于编辑远程调试连接设备;
⑧执行4.exe——用于执行程序;
⑨放置可远行配置——用于设置当前活动目的配置:Win32Debug或Win32Release;
⑩配置——用于编辑项目配置;
简档——用于用户剖析应用程序的运行行为,检查诊断代码的执行情况,以使程序能够更加高效地运行。1.4.7“工具”菜单
“工具”菜单中包含VisualC++6.0所提供的各种工具,用户能够直接从该菜单中操作这些工具,如图1-20所示。图1-20“工具”菜单①来源浏览器——用于启动源代码浏览器;
②RegisterControl——用于启动寄存器控制器;
③ErrorLookup——用于启动错误查找器;
④ActiveXControlTestContainer——用于启动ActiveX控件测试容器;
⑤OLE/COMObjectViewer——用于启动OLE/COM对象查看器;
⑥Spy++——用于启动Spy++工具包,Spy++能够给出当前系统中所有活动窗口和控件的树状表示图;
⑦MFCTracer——用于启动MFC跟踪器;⑧定制——用于对命令、工具栏、工具菜单和键盘加速键进行定制;
⑨选择——用于对VisualC++6.0的环境进行选择设置(如调试器设置、窗口设置、目录设置、工作区设置、兼容性设置和格式设置等);
⑩宏——用于创建和编辑宏文件。1.4.8“窗口”菜单
“窗口”菜单用于设置VisualC++6.0开发环境中窗口的属性,如图1-21所示。
①新建窗口——用于为当前文档打开另外一个窗口;
②拆分——用于将窗口拆分为多个窗口;
③结束——用于关闭当前窗口;
④全部结束——用于关闭所有打开的窗口;
⑤前窗——用于激活下一个窗口;
⑥后窗——用于激活上一个窗口;
⑦层叠窗口——用于将所有打开的窗口重叠地由上向下排列;
⑧横向平铺窗口——用于将工作区中所有打开窗口按照纵向平铺;
⑨纵向平铺窗口——用于将工作区中所有打开窗口按照横向平铺。图1-21“a窗口”菜单1.4.9“帮助”菜单
“帮助”菜单如图1-22所示,通过“帮助”菜单用户可以了解VisualC++6.0的各种在线帮助信息。
①帮助目录——用于按照内容分类显示VisualC++6.0的联机帮助;
②搜索——用于按照搜寻的方式显示VisualC++6.0的联机帮助;
③索引——用于按照索引的方式显示VisualC++6.0的联机帮助。图1-22“帮助”菜单
1.5第一个VisualC++程序
在本节中,我们将教大家编写第一个VisualC++程序。该程序将在屏幕上打开一个标准的窗口,显示“您好!这是我的第一个VC++程序!”信息。这个例子将展示出使用VisualC++6.0编写程序的全过程。
MFCAppWizard是VisualC++提供的一个能根据用户的要求自动生成软件项目最初的源程序框架的工具,这个源程序框架由默认的初始化功能程序段和基本的Windows消息映射处理程序段等组成,如果直接编译运行,将可以在屏幕上显示一个默认的窗口。MFCAppWizard生成的源程序框架能在很大程度上帮助程序员轻松地完成程序设计工作。下面介绍的这个程序就是建立在MFCAppWizard生成的框架上的。其操作步骤如下:
(1)选择“文件/新建”命令,打开“新建”对话框,如图1-23所示。
(2)在左边的项目类型列表框中选择选项。
(3)在右边的“工程”文本框中输入所要建立项目的名字“Myfirstprogram”。在“位置”文本框中输入所要建立的项目所在的目录。
(4)单击按钮,将出现“MFCAppWizard-Step1”对话框,如图1-24所示。图1-23“新建”对话框图1-24“MFCAppWizard-Step1”对话框
(5)“MFCAppWizard-Step1”对话框中的“单个文档”选项指单文档界面程序,“多重文档”指多文档界面程序,“基本对话”选项指基于对话框的程序,本例中选择“单个文档”选项。
(6)单击按钮,将出现“新建工程信息”对话框,如图1-25所示。该对话框中叙述了AppWizard将要生成的源程序框架的规格。现在可以在项目工作台窗口中管理新建项目了。图1-25“新建工程信息”对话框提示:
如果在“MFCAppWizard-Step1”对话框中单击按钮,则VisualC++会显示其他“MFCAppWizard-Step”对话框,用户可在这些对话框中选择或修改其他选项,以生成不同风格的源程序框架。
(7)添加代码。首先单击项目工作台窗口中
旁边的以打开此选项,然后单击旁边的,展开“CmyfirstprogramView”类的所有成员,再双击
,VisualC++将调入“CmyfirstprogramView”类的源程序显示在源代码编辑器窗口中,如图1-26所示。图1-26添加代码在“//TODO:adddrawcodefornativedatahere”一行下添加如下代码:
pDC->TextOut(0,0,“您好!这是我的第一个VC++程序!”);
这行代码的作用是在窗口客户区的坐标(0,0)处显示“您好!这是我的第一个VC++程序!”这几个字。
(8)编译:选择“编译/构件Myfirstprogram.exe”命令,即可编译并链接生成Myfirstprogram.exe可执行文件。
(9)运行与调试:选择“编译/开始调试/去”命令,VisualC++将调入调试器,并在调试器环境中运行Myfirstprogram.exe程序。Myfirstprogram.exe程序的运行结果如图1-27所示。图1-27Myfirstprogram.exe程序的运行结果
1.6开发环境的初步实践
本章简要介绍了VisualC++6.0软、硬件环境以及不同的版本,同时对集成开发环境做了一个全面的介绍。VisualC++6.0的功能十分强大,包含了众多的菜单项和工具栏,对初学者来说,并不要求在初学阶段全部掌握,随着学习的深入,可以循序渐进,逐步掌握。
本章还介绍了应用程序向导AppWizard如何创建一个新程序,从而使读者建立有关VisualC++6.0的感性认识,为后续内容的学习打下一定的基础。下面介绍一个编程实例。这个实例将创建一个简单的计算两个数相加求和的程序。通过该实例,读者可掌握:
(1)如何创建一个新的工程;
(2) VisualC++6.0中常用菜单和工具的使用;
(3) VisualC++6.0的主窗口中项目工作区窗口、编辑窗口和输出窗口的使用;
(4)添加代码的方法;
(5)如何编译、运行、调试程序;
(6)如何查看程序运行的结果。具体操作步骤如下:
(1)打开VisualC++应用程序,单击菜单下的
按钮,弹出对话框,如图1-28所示。
(2)从“工程”选项卡中,单击,然后在文本框中输入“上机练习(求和)”,此时在文本框中可选择该工程的位置。最后单击按钮,弹出对话框,如图1-29所示。图1-28“新建”对话框图1-29Win32控制台应用程序对话框
(3)选中,单击按钮,弹出“新建工程信息”对话框,如图1-30所示。图1-30“新建工程信息”对话框
(4)单击按钮,自动生成“上机练习(求和)”应用程序,其工作区如图1-31所示。图1-31工作区
(5)在工作区,单击属性页,双击打开
,再双击源文件可以打开并编辑文件,编辑区如图1-32所示。图中编辑区内容是VisualC++自动生成的,用户可以在编辑区添加程序代码。图1-32编辑区编辑区
(6)在编辑区添加以下代码,建立一个计算两个数相加求和的程序,如图1-33所示。图1-33在编辑区添加代码下面是对这个程序的一些解释。
程序的第1行是“//上机练习(求和).cpp:Definestheentrypointfortheconsoleapplication.”,用“//”开头表示这行是注释行。注释行有助于帮助阅读和调试程序,注释行语句并不参加程序的运行。注释有两种方式:“//”表示的是单行注释,“/*…*/”表示的是多行注释。
程序的第4行是“#include<iostream.h>”,为预处理指令。“#”表示此预处理是在程序编译之前运行,“include”表示预处理将指定的文件内容复制到该程序中,“<iostream.h>”称为头文件,即输入输出流库,是系统提供的,用于实现人机交互。程序的第5~14行是程序的主体,main()是主函数名,是编译执行的入口。括号内为函数的参数表。函数体用大括号{}括起来,可以包含多条语句,每条语句用分号结束。
程序的第7行是“cout<<”Pleaseenternum1:“<<endl;”,cout是一个标准输出文件名,“<<”是插入运算符,表示在屏幕上显示“Pleaseenternum1:”,提示用户输入第一个数,endl起到回车换行的作用。
程序的第8行是“cin>>num1;”,cin与cout类似,是一个标准输入文件名,“>>”是提取运算符,表示从键盘输入第一个数赋值给变量num1。程序的第11行是“sum=num1+num2;”,表示计算num1与num2的和,并把结果赋值给变量sum。
程序的最后两行,表示函数main执行终止。
(7)单击菜单下的菜单项编译程序,再单击菜单项运行该程序,其运行界面如图1-34所示。根据提示输入适当的数(本例输入3),并按回车键(键盘上的键),再输入另一个数(本例输入5),按回车键,即可得到结果,再按任意键可退出运行。
注意:最后需单击工具栏的图标,保存该程序。图1-34程序运行界面思考题
1-1启动VisualC++6.0,打开其主窗口。在C:\MyVC文件夹中创建一个名为“chapter1”的新工程。
1-2选择“编辑/查找文件”命令,在(1)题所创建的“chapter1”工程中查找chapter1.*文件。
1-3在输出窗口中查看查找文件结果。
1-4选择“文件/全部保存”命令,保存“chapter1”工程。
1-5退出VisualC++6.0。
第2章C++语言基础2.1编码基础2.2数据类型2.3常量与变量2.4运算符和表达式2.5基本语句2.6构造类型2.7函数2.8指针思考题
2.1编码基础
C++语言是在C语言的基础上增加了对面向对象程序设计的支持发展起来的,而VisualC++6.0又是以C++为基础的。因此,学习VisualC++6.0语言编程,首先要掌握C++程序设计的基础知识,对C++的基本组成、基本符号、保留字和标识符有一定的了解,它们是阅读和编写程序的基础。2.1.1基本组成
一个C++程序通常由预处理命令、函数、语句、变量、输入输出以及注释等几个部分组成。例如:
#include<iostream.h> //预处理命令
voidmain(void) //主函数
{
charmyname[10]; //变量
cout<<''请输入姓名:''; //输出
cin>>myname[10]; //输入
cout<<''欢迎使用VisualC++6.0''<<endl; //输出
}其中#include<iostream.h>是预处理命令。voidmain(void)是函数,main是主函数名。每条语句用分号结束。charmyname[10]表示定义字符串变量,myname是变量名。cin>>myname[10]表示通过键盘输入变量myname的值。cout<<"欢迎使用VisualC++6.0"<<endl表示在屏幕上显示双引号里的内容,endl表示显示后换行。“//”表示其右边的内容为该语句的注释。
1.预处理命令
在C++程序中,预处理命令以“#”开始,其作用是在编译之前将系统定义的头文件“iostream.h”包含到当前程序中。该头文件设置了C++的输入输出环境,如cin、cout就是在iostream.h中定义的标准输入、输出设备标识符。C++提供三种预处理命令:宏定义命令、文件包含命令以及条件编译命令。
2.函数
一个C++程序通常由若干个函数组成,这些函数有C++系统提供的库函数,也有用户根据需要编写的自定义函数。在C++程序的这些函数中,必须有且仅有一个主函数main,函数体用大括号{}括起来,不论主函数位于什么位置,该程序都是从主函数开始执行的。
3.变量
在C++程序中,需要将数据存放于内存单元中,而变量就是用来存储和访问内存单元中数据的标识符。变量有整型、字符型、浮点型等基本数据类型。
4.语句
语句是组成程序的基本单元,如顺序语句、选择语句、循环语句等。所有的语句以分号结束,最简单的语句是空语句,它仅包括一个分号。
5.输入和输出
在C++程序中常有输入和输出语句,特别是通过键盘输入以及屏幕输出的功能,几乎每个程序都要用到。
6.注释
一个高质量、有价值的C++源程序应加上必要的注释,这可以提高程序的可读性。注释并不参加程序的运行。
注释有两种方式:“//”表示的是单行注释,“/*…*/”表示的是多行注释。2.1.2基本符号
C++程序中的基本符号有以下三类:
1.字母
大小写英文字母:A~Z,a~z,共52个符号。
2.数字
数字字符:0~9,共10个符号。
3.特殊字符
空格 ! # % ^ & * _(下划线) + = - ~ < > / \
'
" ; . , () [] {}等,共33个符号。2.1.3关键字
在C++程序中关键字又称为保留字,是有特定的专门含义的单词,在编程时不能用于其他用途。下面列出常用的关键字,如表2-1所示,其含义和用法在相关的章节中再加以介绍。
需要注意的是,记住这些常用的关键字,可以避免用户在定义标识符时与关键字重名而产生错误。
表2-1C++常用的关键字2.1.4标识符
标识符是程序员声明的单词,用于命名程序正文中的一些实体,如变量、常量、函数和其他用户自定义对象等。为了增加程序的可读性,在定义标识符时,注意做到“见名知意”。在C++中,命名标识符的规则如下:
(1)必须以字母或下划线“_”开头,由字母、数字或下划线组成,如:Abc、n1、_s_2等都是合法的标识符,而3abc、A*B、&Num都是不合法的,标识符中间不允许有空格。
(2)不能使用C++中的关键词,如if、for、int等都不能用作标识符。
(3)标识符中字母区分大小写,如Abc和abc认为是不同的标识符。
(4)标识符的有效长度为32,也就是说前32个字符相同的两个不同的标识符认为是同一个标识符。
2.2数据类型
在各种程序设计语言中,数据类型的规定和处理方法是各不相同的。C++的数据类型可以大致分为基本数据类型和自定义数据类型。
2.2.1基本数据类型
基本数据类型由系统定义和提供,常用的有int(整型)、float(单精度浮点型)、double(双精度浮点型)、char(字符型)、void(无值型)、bool(逻辑型)等。在基本类型前面加上类型修饰符就形成了基本类型的派生类型。类型修饰符有signed(有符号的)、unsigned(无符号的)、short(短型的)、long(长型的)四种。
各种基本数据类型及其常用的派生类型的描述及表示范围如表2-2所示。
表2-2C++的基本数据类型注:出现[int]可以省略,即在int之前有类型修饰符signed、unsigned、short、long时,可以省略关键字int。2.2.2自定义数据类型
自定义数据类型是由用户根据所需构造的数据类型,包括数组、指针、结构、枚举以及类等。
以下仅介绍枚举类型,其他类型将在后面章节中陆续介绍。
枚举是将变量的值一一列举出来,使变量的值限于列举的范围内。
枚举的一般形式是:
enum<类型名>{<枚举值表>}<枚举变量表>;
每个枚举值均有一个固定的整数值。如果没有显式赋值,则第一个枚举值为0,后续枚举值依次递增1。如果有显式赋值,则可以设置1个或多个特定值,其未赋值的后续枚举值依次递增1。例如:
enumday1{Sun,Mon,Tue,Wed,Thu,Fri,Sat};
enumday2{Mon=1,Tue,Wed,Thu,Fri,Sat,Sun};
由此可以看出,枚举类型day1没有显式赋值,它的7个值为Sun=0,Mon=1,Tue=2,Wed=3,Thu=4,Fri=5,Sat=6。枚举类型day2有显式赋值,它的7个值为Mon=1,Tue=2,Wed=3,Thu=4,Fri=5,Sat=6,Sun=7。
2.3常 量 与 变 量
根据程序中数据的可变性,数据可以分为常量与变量两大类。常量是在程序运行过程中不变的量,变量是在程序运行过程中可以发生变化的值。在编程时,常量和变量必须遵循“先声明,后使用”的原则,即所有常量和变量必须在使用前用说明语句进行说明,否则编译器就会产生错误。
2.3.1常量
在程序运行过程中,其值不变的量称为常量。根据不同的数据类型,常量可以有以下表示方法。
1.整型常量
整型常量可以用十进制、八进制和十六进制表示。
1)十进制整型常量
十进制整型常量即十进制整数,如12,345等。
2)八进制整型常量
以0开头的数是八进制整数,它由0~7的数字组成。如065,表示八进制数65,相当于十进制数53;如-017,表示八进制数-17,相当于十进制数-15。
3)十六进制整型常量
以0x或0X开头的数是十六进制整数,它由0~9、a~f或A~F组成。如0x7b,表示十六进制数0x7b,相当于十进制数123;如-0x2f,表示十六进制数-0x2f,相当于十进制数-47。
2.浮点型常量
浮点型常量即实数,它有十进制和指数两种表示形式。
1)十进制形式
它由整数部分和小数部分组成,如0.12、.12、1.2、12.0、0.0等。需要注意的是这些数都必须包含小数点。
2)指数形式
指数形式采用科学记数法,它可以表示出很大或很小的浮点数。如1.2e8或1.2E8,表示1.2×108。需要注意的是,字母e或E前必须有数字,且字母e或E后面的指数必须是整数。
3.字符常量
字符常量是用一对单引号括起来的一个字符,如‘A’、‘b’、‘&’等都是字符常量。注意‘A’和‘a’是两个不同的字符常量。
4.字符串常量
字符串常量是用一对双引号括起来的一个字符序列。如“Hello!”、“abcd”等都是字符串常量。注意:字符串常量可以包括空格、转义序列符或其他字符。由于双引号是字符串的分界符,因此如果需要在字符串中出现双引号则必须用“|”表示。字符串常量必须写在同一行,若要换行,则需要用“\”连接。
5.符号常量
在C++语言中,也可以用一个标识符表示一个常量,根据定义方法区分,又分为const常量和宏常量。
1) const常量
用const定义的常量,即正规常量,其说明语句的一般形式是:
const<类型名><常量名>=<表达式>;
例如:
constfloatpi=3.14;//定义常量pi的值为3.14使用规则如下:
(1)必须以const开头;
(2)类型名为基本类型及其派生类型;
(3)常量名为标识符;
(4)表达式应与常量类型一致。
在程序中用pi代替3.14,可以提高程序的可读性和可维护性。
2)宏常量
用#define定义的常量,即宏常量,其说明语句的一般形式是:
#define<宏名><常量>
例如:
#definePI3.14;//定义宏常量pi的值为3.14
使用规则如下:
(1)宏名可以是简单的字符名,也可是带有参数的函数名;
(2)常量可以是数值、字符串和函数等。
由于宏替换是在编译时把出现的所有的宏名PI都用3.14来替换,相当于两个字符串的替换,所以容易产生错误,因此在大多数情况下建议使用const常量。2.3.2变量
变量是指在程序运行过程中其值可以发生变化的量,它可以用来存储程序中需要处理的数据,可以放在程序的任何位置。但需要注意的是:在使用变量前,必须要用说明语句对变量进行说明。
1.变量说明
变量说明语句的一般形式是:
[<存储类>]<类型名或类型定义><变量名表>;
其中各部分的功能及使用规则如下:
1)存储类
(1) auto属于一次性存储,其存储空间可以被若干变量多次覆盖使用;
(2)
register存放在通用寄存器中;
(3) extern在所有函数和程序段中都可引用;
(4) static在内存中是以固定地址存放的,在整个程序运行期间都有效。
其中,[<存储类>]的方括号表示可以缺省,作为auto变量。
2)类型名或类型定义
在任何变量说明语句中,数据类型定义不可缺省。
3)变量名表
其格式为以下几种:
<变量名>
<变量名>=<表达式>
<变量名1>=[<表达式1>],<变量名2>=[<表达式2>],…
其中表达式就是变量的初始化值。
例如:
inti; //定义整型变量i
charch1=‘A’; //定义字符型变量ch1,并赋值为字符A
floatnum1=1.2,num2,num3=29.6; //定义单精度浮点型变量num1,
//num2,num3;并将num1赋值
//为1.2,将num2赋值为29.62.变量作用范围
在C++语言中,变量说明语句可以出现在程序的任何位置。在不同的位置声明,其作用域不同。它主要分为全局变量和局部变量。
(1)全局变量:其说明语句不在任何一个类定义、函数定义和复合语句(程序块)中的变量。全局变量所占用的空间在内存的数据区,在程序运行的整个过程中位置保持不变。
(2)局部变量:其说明语句在某一个类定义、函数定义或复合语句(程序块)中的变量。局部变量所占用的空间在为程序运行时设置的临时工作区中,以堆栈的形式允许反复占用和释放。
【例2-1】通过变量的位置认识全局变量和局部变量的作用域。
程序如下:
#include“stdafx.h”
#include<iostream.h>
intmain(intargc,char*argv[])
{
intnum1=0,num2=0; //定义全局变量num1,num2,并赋初值
num1++;
num2++;
//将num1加1后赋给num1,将num2加1后
//赋给num2
cout<<“num1=”<<num1<<“,”<<“num2=”<<num2<<endl;
//输出num1,num2的值
{
floatnum1=7.7;
//定义局部变量num1
num1++; num2++;
cout<<"num1="<<num1<<","<<"num2="<<num2<<endl;
}
num1++; num2++;
cout<<“num1=”<<num1<<“,”<<“num2=”<<num2<<endl;
return0;
}
上例中全局变量int型num1的作用域为5~7行和13~16行,int型num2的作用域为5~16行;局部变量float型num1的作用域为8~12行。
程序运行结果如图2-1所示。图2-1变量的作用域运行结果
2.4运算符和表达式
C++语言中运算符是表示实现某种运算的符号,表达式是运算符和操作数的组合,通过运算符和表达式可以实现程序编制中所需的大量操作。下面将介绍C++的运算符、运算符的优先级和结合规则以及表达式等基本内容。
2.4.1算术运算符
C++的算术运算符包含单目运算符和双目运算符,其中单目运算符有减、增量、减量运算符,双目运算符有加、减、乘、除和模运算符。表2-3列出了各算术运算符(设整型变量a=12,b=5)。
1.单目减
单目减相当于取负号运算。例如:-a的值为-12。
2.增量运算
增量运算有前缀增量和后缀增量两种形式。
前缀增量:++<运算分量>;//使用运算分量前其值加1
后缀增量:<运算分量>++;//使用运算分量后其值加1
例如:
++a;//相当于a=a+1,即把a加1的值赋给a
b=++a;//相当于a=a+1,b=a,即先把a加1的值赋给a,再把a的值赋给b
a++;//相当于a=a+1,即把a加1的值赋给a
b=a++;//相当于a=a+1,b=a,即先把a的值赋给b,再把a加1的值赋给a
3.减量运算
减量运算除了将加法改为减法外,其余和增量运算完全相同。
4.优先级和结合性
优先级是指多种运算之间的先后关系。在算术运算符中,单目运算的优先级最高,其次是 * (乘)、/ (除)和%(求余),最后是+(加)、-(减)。
运算符的结合性是指运算符和操作数的结合方式,它有“从左到右”和“从右到左”两种。对于优先级相同的运算符,按照它们的结合性进行处理。在算术运算符中,除单目运算符外,其余双目运算符的结合性都是从左到右的。2.4.2赋值运算符
赋值运算符是程序设计中最基本的运算符,利用赋值运算符可以给一个变量赋值。其一般形式为:
<变量名>=<表达式>;
其中,各部分的作用如下:
(1)表达式:一般要求其类型与变量名的类型一致。
(2)“=”为赋值运算符,它不同于数学上的等号。赋值运算的作用是:先计算右边表达式的值,然后将值赋给左边的变量。例如:
sum=num1+num2;
s=s+n;
在程序中经常出现类似于s=s+n这样的赋值语句,C++还允许采用更为简洁的形式写为s+=n。于是构成了复合赋值运算符,如表2-4所示。
在赋值运算符中,复合赋值运算符和赋值运算符的优先级是一样的。赋值运算符的优先级仅高于后面要讲到的逗号运算符。
赋值运算符的结合性是从右到左的。下面的例子用来解释表2-4中逐位与、逐位或及逐位异或的含义。
例如:a的值为3,对应的二进制数是011;b的值为5,对应的二进制数是101。
a&=b,即二进制数011和101逐位与,得到001,相当于十进制数1,所以运行后a的结果是1。
a|=b,即二进制数011和101逐位或,得到111,相当于十进制数7,所以运行后a的结果是7。
a^=b,即二进制数011和101逐位异或,得到110,相当于十进制数6,所以运行后a的结果是6。2.4.3关系运算符
关系运算符是双目运算符,作用是将两个运算分量进行大小比较,其结果类型为bool。若关系成立,则值为true,否则为false。
表2-5列出了C++提供的6种关系运算符。上表中的前4种即 < (小于)、<= (小于等于)、> (大于)、>= (大于等于)优先级相同,并高于后面的2种即 == (等于)、!= (不等于)。关系运算符的优先级低于算术运算符,它的结合性是从左到右的。2.4.4逻辑运算符
C++提供3种逻辑运算符,单目运算符有逻辑非,双目运算符有逻辑与和逻辑或。其结果类型为bool,其值只能为true或false。
在C++语言中,bool型和int型都属于整数类型,bool值true和false同时分别对应于int型的值1和0,而整型也可以转换成bool型,非零整数转换为true,而0转换成false。
这3种逻辑运算符如表2-6所示。上表中的!(逻辑非)、&&(逻辑与)、||(逻辑或)优先级依次从高到低。!(逻辑非)的优先级比算术运算符和关系运算符高,而&&(逻辑与)、||(逻辑或)的优先级低于关系运算符。
逻辑运算符的结合性是从左到右的。2.4.5条件运算符
条件运算符是三目运算符,其一般形式为:
<表达式1>?<表达式2>:<表达式3>
该表达式的使用规则如下:
(1)表达式1必须是bool类型。
(2)执行顺序及结果。先求解表达式1。若表达式1的值为true,则求解表达式2,表达式2的值为最终结果;若表达式1的值为false,则求解表达式3,表达式3的值为最终结果。例如:
x=a>b?a:b;//作用是将a,b中大的数赋值给x
(3)优先级和结合性。条件运算符优先级高于赋值运算符,低于逻辑运算符。条件运算符的结合性是从右到左的。2.4.6逗号运算符
逗号运算符可以使多个表达式写在一行上,从而大大简化了程序,其一般形式为:
<表达式1>,<表达式2>
该表达式的使用规则如下:
(1)执行顺序及结果。先求解表达式1,再求解表达式2,最终结果为表达式2的值。
例如:
a=2*4,a*6//最终结果为48
(2)优先级和结合性。逗号运算符是优先级最低的运算符。逗号运算符的结合性是从左到右的。2.4.7sizeof运算符
字长提取符sizeof运算符实际上是系统提供的一个函数,其一般形式为:
sizeof(<运算分量>)
该表达式的使用规则如下:
(1)运算分量可以是类型名,也可以是表达式。
(2)结果值为“类型名”所指定的类型或“表达式”的结果类型所占的字节数。
例如:
inta
sizeof(short)//返回值是2
sizeof(a)//返回值是4
C++提供了对数据进行位运算的功能,其运算符如表2-7所示。其中,左移运算(<<)指左移后,低位补0,高位舍弃。右移运算(>>)指右移后,低位舍弃;高位无符号数补0,有符号数补“符号位”。
位运算符的优先级低于算术运算符,高于逻辑运算符&&(逻辑与),||(逻辑或)。
位运算符的结合性除单目运算符按位取反是从右到左,其余双目位运算符都是从左到右的。
注意:在编程时,如果对于运算符的优先级不确定时,可以添加括号保证结果正确,因为有括号的部分优先计算。
2.5基本语句
C++提供了顺序语句、选择语句、循环语句来实现结构化程序设计的三种结构,即顺序结构、选择结构和循环结构。
2.5.1顺序语句
顺序语句就是所有语句按照出现的顺序先后执行。顺序语句包括表达式、空语句和复合语句。
1.表达式语句
表达式语句是最简单的语句,任何一个表达式加上分号就是一个表达式语句,其一般形式为:
表达式;
例如:
a+b;
num1=num2;
表达式语句与表达式的区别:表达式可以包含在其他表达式中,而语句不可。
例如:
if((a=b)>0)t=a;
不可写为
if((a=b;)>0)t=a;
2.空语句
空语句就是什么都不做的语句,相当于一个空表达式,其一般形式为:
:
3.复合语句
复合语句是由两条以上的语句组成,并用一对大括号{}括起来。它又称为块语句或块程序,其一般形式为:
{
<语句1>
<语句2>
…
<语句n>
}
例如:
{
sum=sum+i;
i++;
}
4.基本输入和输出语句
在前面的章节中,用到cin和cout分别实现从键盘输入和在显示器上输出。绝大多数C++程序都使用了系统提供的I/O流,以实现基本的输入和输出操作。在I/O流类的定义中,把C++语言中的左、右移位运算符“<<”和“>>”,通过运算符重载的方法定义为插入(输出)和提取(输入)运算符。cin和cout是预先定义的流的对象,分别为标准输入流和标准输出流,一般代表标准输入设备(键盘)和标准输出设备(显示器)。例如:
cin>>a;
//表示从键盘输入变量a的值
cout<<a; //表示在显示器上输出变量a的值
为了更好地调整输入输出格式,C++提供了格式控制函数和格式控制符。
1) flags
flags函数的形式一般有以下两种:
longflags(long1Flags);
longflags();
第一种形式是通过参数1Flags重新设置标志字并返回原来的标志字;另一种形式是无参的flags函数用来返回当前的标志字。
2) setf
setf函数的形式一般有以下两种:
longsetf(long1Flags);
longsetf(long1Flags,long1Mask);
第一种形式是通过参数1Flags来设置指定的格式控制标志位;另一种形式是用来设置指定的格式控制标志位的值。
3) unsetf
unsetf函数的一般形式为:
longunsetf(long1Flags);
这种形式是通过参数1Flags来清除指定的格式控制标志位(使那些位的值为“0”)。
4) fill
fill函数的形式一般有以下两种:
charfill(charcFill);
charfill();
第一种形式是将填充字符设置为cFill,并返回原填充字符;另一种形式是无参数的fill函数将返回当前的填充字符。
5) precision
precision函数的形式一般有以下两种:
intprecision(intnp);
intprecision();
第一种形式是设置浮点数精度为np,并返回原精度;另一种形式是无参
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025安全教育平台考试题库和答案
- 农业岗位面试问题及参考答案
- 流行病与生活方式的关系教学设计初中综合实践活动九年级第一学期沪科版(贵州专用)
- 我给植物来挂牌(教案)四年级劳动北师大版
- 2026年计算机考研知识图谱构建课件
- 四年级信息技术下册 刻录作品光盘 1教案 冀教版
- 高中历史 第1课 走向民主政治教学设计2 岳麓版选修1
- 2026年环保知识竞赛真题汇编课件
- 2026汽车零部件行业市场拓展及技术创新深度分析研究报告
- 2026中国钛行业市场分析及发展战略与投资前景预测研究报告
- 体育与健康九年级人教版背越式跳高教案
- 县域经皮冠状动脉介入治疗合理用药与综合管理指南课件
- 2026保密教育线上培训考试试题(附完整答案及解析)
- 2026四川省现代种业发展集团种芯农业有限公司招聘财务人员(会计岗)1人笔试历年常考点试题专练附带答案详解
- 安徽宣城市绩溪皖能抽水蓄能发电有限公司招聘笔试题库2026
- 反恐怖防范安全风险评估工作指南(试行)
- 江西省2026年重点学校初一新生入学分班考试试题及答案
- 食品公司内部标签审核制度
- 纤维检验员测试验证考核试卷含答案
- 《2026年》化妆品配方研发工程师高频面试题包含详细解答
- mdsap培训课件教学课件
评论
0/150
提交评论