文档库 最新最全的文档下载
当前位置:文档库 › contain,include的区别

contain,include的区别

contain,include的区别
contain,include的区别

contain,include的区别:都有“包含”的意思,

但contain可用于表示包含所含之物的的全部或部分,

而include则只能用于表示所包含之物中的一部分。

例如:

The parcel contained a dictionary. 那包裹里装的是一本字典。

The health club includes a gym,swimming pool, and locker room.

健身俱乐部包括体操房,游泳池和更衣室。

include 是两个词中最普通的,指在整体中能明确界定的几个部分。

e.g. The health club includes a gym,mming pool , and locker room.

健身俱乐部包括体操房,游泳池和更衣室。

Our ten-day tour include a visit to New Y ork .

我们十天的旅行包括参观纽约。

contain: 包含,含有,装有

contain 指一个较大事物中所容纳的分离部分,有封闭于一个整体的感觉。

e.g. The bowl contains a variety of fruit. 碗里装有各种水果。

This bottle contains two glasses of beer. 这个瓶子装了两杯啤洒。

两者都有包含的意思

不同的是contain指含有,多是不可分离,是整体一部分的东西。

比如:Apple contains vitamin and mineral.苹果含有维生素和矿物质。

看到了吗?这里vitamin和mineral是含在苹果中不可分割的。

而include是更强调一个整体里的组成成分

比如,Our group went to the Summer Palace,including Jerry,Cathy and me. 我们组去了颐和园,其中包括Jerry,Cathy和我。

这里的Jerry等虽然是整体一部分,却是个体,可以独立存在的。contain 是指容器空间里所有东西。

include 是专门挑出其中部分给以强调。

His school bag contains a lot of books, including a cartoon book.

这句就说明了两者的用法:

他的书包里有很多书,其中有一本动画书。

include 侧重抽象(指人也可以)

contain 侧重具体

eg. We are all given a chance including Tom.

The valley contains a small over floating down towards the city nearby.

另外:container容器

bmp文件格式详解

b m p文件格式详解 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

BMP文件格式,又称为Bitmap(位图)或是DIB(Device-IndependentDevice,设备无关位图),是Windows系统中广泛使用的图像文件格式。由于它可以不作任何变换地保存图像像素域的数据,因此成为我们取得RAW数据的重要来源。Windows的图形用户界面(graphicaluserinterfaces)也在它的内建图像子系统GDI中对BMP格式提供了支持。 下面以Notepad++为分析工具,结合Windows的位图数据结构对BMP文件格式进行一个深度的剖析。 BMP文件的数据按照从文件头开始的先后顺序分为四个部分: bmp文件头(bmpfileheader):提供文件的格式、大小等信息 位图信息头(bitmapinformation):提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息 调色板(colorpalette):可选,如使用索引来表示图像,调色板就是索引与其对应的颜色的映射表 位图数据(bitmapdata):就是图像数据啦^_^ 下面结合Windows结构体的定义,通过一个表来分析这四个部分。 我们一般见到的图像以24位图像为主,即R、G、B三种颜色各用8 个bit来表示,这样的图像我们称为真彩色,这种情况下是不需要调色 板的,也就是所位图信息头后面紧跟的就是位图数据了。因此,我们 常常见到有这样一种说法:位图文件从文件头开始偏移54个字节就是

位图数据了,这其实说的是24或32位图的情况。这也就解释了我们 按照这种程序写出来的程序为什么对某些位图文件没用了。 下面针对一幅特定的图像进行分析,来看看在位图文件中这四个数据 段的排布以及组成。 我们使用的图像显示如下: 这是一幅16位的位图文件,因此它是含有调色板的。 在拉出图像数据进行分析之前,我们首先进行几个约定: 1.在BMP文件中,如果一个数据需要用几个字节来表示的话,那么该数据的存放字节顺序为“低地址村存放低位数据,高地址存放高位数据”。如数据 0x1756在内存中的存储顺序为: 这种存储方式称为小端方式(littleendian),与之相反的是大端方式(bigendian)。对两者的使用情况有兴趣的可以深究一下,其中还是有学问的。 2.以下所有分析均以字节为序号单位进行。 下面我们对从文件中拉出来的数据进行剖析: 一、bmp文件头 Windows为bmp文件头定义了如下结构体: typedef struct tagBITMAPFILEHEADER {?

Source Insight用法精细

Source Insight实质上是一个支持多种开发语言(java,c ,c 等等) 的编辑器,只不过由于其查找、定位、彩色显示等功能的强大,常被我 们当成源代码阅读工具使用。 作为一个开放源代码的操作系统,Linux附带的源代码库使得广大爱好者有了一个广泛学习、深入钻研的机会,特别是Linux内核的组织极为复杂,同时,又不能像windows平台的程序一样,可以使用集成开发环境通过察看变量和函数,甚至设置断点、单步运行、调试等手段来弄清楚整个程序的组织结构,使得Linux内核源代码的阅读变得尤为困难。 当然Linux下的vim和emacs编辑程序并不是没有提供变量、函数搜索,彩色显示程序语句等功能。它们的功能是非常强大的。比如,vim和emacs就各自内嵌了一个标记程序,分别叫做ctag和etag,通过配置这两个程序,也可以实现功能强大的函数变量搜索功能,但是由于其配置复杂,linux附带的有关资料也不是很详细,而且,即使建立好标记库,要实现代码彩色显示功能,仍然需要进一步的配置(在另一片文章,我将会讲述如何配置这些功能),同时,对于大多数爱好者来说,可能还不能熟练使用vim和emacs那些功能比较强大的命令和快捷键。 为了方便的学习Linux源程序,我们不妨回到我们熟悉的window环境下,也算是“师以长夷以制夷”吧。但是在Window平台上,使用一些常见的集成开发环境,效果也不是很理想,比如难以将所有的文件加进去,查找速度缓慢,对于非Windows平台的函数不能彩色显示。于是笔者通过在互联网上搜索,终于找到了一个强大的源代码编辑器,它的卓越性能使得学习Linux内核源代码的难度大大降低,这便是Source Insight3.0,它是一个Windows平台下的共享软件,可以从https://www.wendangku.net/doc/4b13725907.html,/上边下载30天试用版本。由于Source Insight是一个Windows平台的应用软件,所以首先要通过相应手段把Linux系统上的程序源代码弄到Windows平台下,这一点可以通过在linux平台上将 /usr/src目录下的文件拷贝到Windows平台的分区上,或者从网上光盘直接拷贝文件到Windows平台的分区来实现。 下面主要讲解如何使用Source Insight,考虑到阅读源程序的爱好者都有相当的软件使用水平,本文对于一些琐碎、人所共知的细节略过不提,仅介绍一些主要内容,以便大家能够很快熟练使用本软件,减少摸索的过程。 安装Source Insight并启动程序,可以进入图1界面。在工具条上有几个值得注意的地方,如图所示,图中内凹左边的是工程按钮,用于显示工程窗口的情况;右边的那个按钮按下去将会显示一个窗口,里边提供光标所在的函数体内对其他函数的调用图,通过点击该窗体里那些函数就可以进入该函数所在的地方。

宏的使用方法

在这里总结宏的使用方法欢迎补充 1 条件include 如下 CODE #ifndef MAIN_H_ #define MAIN_H_ 其它内容 #endif 上面在看到头文件时会看到作用就是阻止这个头文件被多次include 多次include就会出现重复的定义情况所以需要在每个头文件中都使用这个定义 如果还不是很了解要怎样使用可以看看c的标准头文件如fcntl.h 2 条件编译 如下 CODE #ifdef _DEBUG printf("this debug info\n"); #endif 如果没有定义_DEBUG宏的话那么上面那一行是不会编译进去的 但是定义了_DEBUG后上面那行就会编译进去可以写个简单的程序测试 CODE #include int main() { #ifdef _DEBUG printf("hello world\n"); #else printf("no debug"); #endif return 0; } 第一次使用gcc -D_DEBUG main.c 第二次使用gcc main.c 运行两次的结果看 3 定义为某个值以便后面修改这个值时不用修改其它地方代码只要修改这个宏的定义就可以了

如一个软件的多语言版本等 如下 CODE #include #define PRINT_STR "你好DD" main(){ printf(PRINT_STR); return 0; } 编译时会把PRINT_STR代替成"你好DD" 以后想修改时就方便了 另外也可以定义为函数 #include #ifdef _DEBUG #define A(x) a(x) #else #define A(x) b(x) #endif int a(int x) { return x+1; } int b(int x){ return x+100; } int main(){ printf ("A(10) value is %d",A(10)); return 0; } [/code] 其实也可以定义成 #define A a 的 但是定义成A(x)后只有A后面带一个(x)类型的编译器才会执行替换比较安全可以保证只替换函数而不替换变量 第四个 可变参数宏

伪指令的使用与心得

伪指令的使用与心得 1 伪指令的定义 所谓指令(instruction),针对汇编程序而言,就是将CPU直接识别的指令——二进制指令通过查表的方式转换为asmmebly指令而方便程序人员来编制程序,二进制指令就是我们所常说的机器指令。这个转换过程是编译器的工作,不用程序员来干涉。汇编语言指令的形式是以助记符的形式出现的, 所以比较容易理解和记忆。用汇编指令编制的汇编语言源程序, 可长可短, 这是由程序员根据系统的要求, 或是根据程序的难易程序决定的。 单片机与其它计算机一样, 在汇编源程序时需要向汇编程序提供某些必要的信息, 诸如源程序的目的程序从存储器的哪一个单元开始装人? 源程序是否结束? 程序中所用的数据存放在什么地址? 某一个标号的地址是哪里? 某一个可位寻址的代名字是什么? 等等。这些信息要和源程序一起出现, 成为源程序的一部分, 这一类信息也可以指令的形式出现, 汇编语言把它们称为伪指令。所以伪指令是一些特殊的符号集合, 它们不是一个单片机系统指令集中的指令(在指令集中找不到)。 我们可以通过以上的过程描述发现,通过以上从二进制到汇编指令的转换过程发现,这方便了程序人员进行程序的编制。但是,用汇编程序代码和高级语言的代码进行比较,汇编程序还是很复杂。比如说,一个简单比较过程,需要使用CMP、JMP、JNZ、JZ等一系列的指令来实现,不仅复杂而且容易出错,很大的影响了效率。正是因为这个方面的原因,MASM 就出现了.if.endif.elseif等伪指令,这些伪指令为我们在汇编程序中使用和高级语言十分接近的的控制方式来进行比较、循环等结构控制。至于,这些伪指令到真正的指令之间的转换工作,交给汇编器来完成就好了。总结起来,伪指令最终面对的是CPU指令的指令。 伪指令又称汇编程序控制译码指令。“伪”字体现在汇编时伪指令不产生机器指令代码,不影响程序的执行, 仅产生供汇编用的某些命令, 在汇编时执行某些特殊操作。但伪指令使用的错误将直接使源程序无法汇编和产生语法错误及目的地址找不到等问题。所以正确理解单片机中的伪指令对于学习好、应用好单片机是十分重要的。表1列出了指令与伪指令的区别。 表1 指令与伪指令的区别

《计算机原理学习指导》第八章 综合练习题参考答案

《计算机原理学习指导》第八章综合练习题参考答案 一.填空题 1.主机CPU和IOP之间的通信,原则上是通过共享__主存储器__来实现的. 2.可以根据中断源在系统中的位置将中断源分为内部中断和外部中断,一般运算器除法错是__内部中断__,键盘输入要求中断是_外部中断___. 3. 响应中断的必须满足3个条件:(1)中断源有中断请求(2)CPU处于开中断状态,而且没有更高优先级的中断请求存在(3)一条指令执行完毕. 4.. 字节多路通道是一种简单的共享通道,它是建立在_时间分割___的基础上,轮流为多台低速和中速外设服务.选择通道数据的传送是以_成组(数据块)____方式进行,因此传送速率高. 5. 多个中断源在软件查询方式中_优先级最高的___最先被访问. 6. 根据数据传送方式,可以将通道分为__选择__通道,__字节多路__通道和数组多路通道. 7. 一个中断向量对应一个__中断服务程序的入口地址__ 8. 中断处理过程可以嵌套,_优先级高___的设备可以中断__优先级低__的设备的中断服务程序. 9. 中断请求的优先排队可以归纳为2大类,它们是__硬件判优__和__软件判优__. 10.. DMA方式中,DMA控制器从CPU完全接管对_总线___的控制,数据交换不经过CPU,而之间在内存和_I/O设备___之间进行. 11. 通道是一个特殊功能的处理器____,它有自己的_指令和程序___,专门负责数据输入输出的传送控制,CPU只负责_数据处理___功能. 12. DMA的含义是_直接存储器访问___,用于解决__数据块高速传送__问题. 二.单项选择题 1..选择通道上可连接若干外围设备,其数据传送的单位是( D ). A.字节 B.字 C.位 D.数据块 2.中断向量地址是(B). A.子程序入口地址 B.中断服务程序入口地址 C.中断服务程序入口地址的地址 D.例行程序入口地址 3.对于低速度输入输出设备,应当选用的通道是( B ). A.数组多路通道 B.字节多路通道 C.选择通道 D.DMA专用通道 4.微型机系统中,主机和高速硬盘进行数据交换一般采用( B ). A.程序中断控制 B.直接存储器访问 C.程序直接控制 D.通道控制 5.常用于大型计算机的控制方式是( D). A.程序查询方式 B.DMA方式 C.中断方式 D.通道方式 6.下述I/O控制方式中,主要由程序实现的是( D ). A.外围处理机方式 B.中断方式 C.DMA方式 D.通道方式 7.有关中断状态,不可响应的中断是(C ). A.硬件中断 B.软件中断 C.可屏蔽中断 D.不可屏蔽中断 8.以下论述正确的是( D ). A.CPU响应中断期间仍执行原程序 B.在中断响应中,保护断点和现场由用户编程完成 C.在中断过程中,若又有中断源提出中断,CPU立即响应 D.在中断响应中,保护断点是由中断响应自动完成的 9.中断系统是( C ).

BMP格式结构详解

位图文件(B it m a p-File,BMP)格式是Windows采用的图像文件存储格式,在Windows环境下运行的所有图像处理软件都支持这种格式。Windows 3.0以前的BMP位图文件格式与显示设备有关,因此把它称为设备相关位图(d evice-d ependent b itmap,DDB)文件格式。Windows 3.0以后的BMP位图文件格式与显示设备无关,因此把这种BMP位图文件格式称为设备无关位图(d evice-i ndependent b itmap,DIB)格式,目的是为了让Windows能够在任何类型的显示设备上显示BMP位图文件。BMP位图文件默认的文件扩展名是BMP或者bmp。 6.1.2 文件结构 位图文件可看成由4个部分组成:位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、彩色表(color table)和定义位图的字节阵列,它们的名称和符号如表6-01所示。 表6-01 BMP图像文件组成部分的名称和符号 位图文件的组成结构名称符号 位图文件头(bitmap-file header)BITMAPFILEHEADE R bmfh 位图信息头(bitmap-information header)BITMAPINFOHEADE R bmih 彩色表(color table)RGBQUAD aColors[] 图像数据阵列字节BYTE aBitmapBits[ ] 位图文件结构可综合在表6-02中。 表6-02 位图文件结构内容摘要 偏移量域的名称大小内容 图像文件头0000h标识符 (Identifie r) 2 bytes两字节的内容用来识别位图的类型: ‘BM’ : Windows 3.1x, 95, NT, linux ‘BA’ :OS/2 Bitmap Array ‘CI’ :OS/2 Color Icon ‘CP’ :OS/2 Color Pointer ‘IC’ : OS/2 Icon ‘PT’ :OS/2 Pointer 0002h File Size 1 dword用字节表示的整个文件的大小 0006h Reserved 1 dword保留,设置为0 000Ah Bitmap Data Offset 1 dword从文件开始到位图数据开始之间的数据(bitmap data)之间的偏移量 000Eh Bitmap Header Size 1 dword位图信息头(Bitmap Info Header)的长度,用来 描述位图的颜色、压缩方法等。下面的长度表示: 28h - Windows 3.1x, 95, NT, … 0Ch - OS/2 1.x F0h - OS/2 2.x 0012h Width 1 dword位图的宽度,以像素为单位 0016h Height 1 dword位图的高度,以像素为单位 001Ah Planes 1 word位图的位面数 图像001Ch Bits Per Pixel 1 word每个像素的位数 1 - Monochrome bitmap

USB INF文件详解(USB)

INF文件详解 INF文件格式要求 一个INF文件是以段组织的简单的文本文件。一些段油系统定义(System-Defined)的名称,而另一些段由INF文件的编写者命名。每个段包含特定的条目和命名,这些命名用于引用INF文件其它地方定义的附加段。 INF文件的语法规则: 1、要求的内容:在特定的INF文件中所要求的必选段和可选段、条目及命令依赖于所要安装的设备组件。端点顺序可以是任意的,大多数的INF文件安装惯用的次序来安排各个段。 2、段名:INF文件的每个段从一个括在方括号[]中的段名开始。段名可以由系统定义或INF编写者定义 在Windows 2000中,段名的最大长度为255个字符。在Windows 98中,段名不应该超过28个字符。如果INF设计要在两个平台上运行,必须遵守最小的限制。段名、条目和命令不分大小写。在一个INF文件中如果有两个以上的段有相同的名字,系统将把其条目和命令合并成一个段。每个段以另一个新段的开始或文件的结束为结束。 3、使用串标记:在INF文件中的许多值,包括INF编写者定义的段名都可以标示成%strkey%形式的标记。每个这样的strkey必须在INF文件的Strings 段中定义为一系列显示可见字符组成的值。 4、行格式、续行及注释:段中的每个条目或命令以回车或换行符结束。在条目或命令中,“\”可以没用做一个显示的续行符;分好“;”标示后面的内容是注释;可以用都好“,”分隔条目和命令中提供的多个值。 INF文件举例 下面是一个完整的.inf文件,它是Windows 2000 DDK提供的USB批量阐述驱动程序范例中所附的.inf文件。 ; Installation inf for the Intel 82930 USB Bulk IO Test Board ; ; (c) Copyright 1999 Microsoft ; [Version] Signature="$CHICAGO$" Class=USB ClassGUID={36FC9E60-C465-11CF-8056-444553540000} provider=%MSFT% DriverVer=08/05/1999 [SourceDisksNames] 1="BulkUsb Installation Disk",,, [SourceDisksFiles] BULKUSB.sys = 1 BULKUSB.inf = 1

source insight解析命令行

安装完SI后,会在安装一个如下的文件 我的文档\Source Insight\c.tom c.tom的功能与C语言中的#define类似。打开这个文件,会看到有很多空格分割的字符串,SI在我们阅读代码时,自自动将空格前的字符串替换为空格后的字符串(仅仅是影响阅读,不影响编译喔)。 举两个例子。 #define AP_DECLARE(type) type AP_DECLARE(int) ap_calc_scoreboard_size(void) { .... } source insight 把AP_DECLARE当作了函数,当想查ap_calc_scoreboard_size的时候总是很麻烦,不能直接跳转. 我的文档\Source Insight\c.tom 加入 AP_DECLARE(type) type 如下的代码如何让SI 识别出f是一个函数? #define EXPORT_CALL(return,functionname) return functionname EXPORT_CALL (int, f1()) 我的文档\Source Insight\c.tom 加入 EXPORT_CALL(return,functionname) return functionname 同时,在#define中,标准只定义了#和##两种操作。#用来把参数转换成字符串,##则用来连接前后两个参数,把它们变成一个字符串。(c.tom的功能与支持##,不支持#好像) 这个技巧我在阅读zebra的命令行代码时也用到了。 比如下吗一段代码:(DEFUN是一个宏定义,这个文件中有很多这样的DEFUN。不修改c.tom 之前看到的是这样的)

BMP图像格式详解

BMP格式图像文件详析 首先请注意所有的数值在存储上都是按“高位放高位、低位放低位的原则”,如12345678h放在存储器中就是7856 3412)。下图是导出来的开机动画的第一张图加上文件头后的16进制数据,以此为例进行分析。T408中的图像有点怪,图像是在电脑上看是垂直翻转的。在分析中为了简化叙述,以一个字(两个字节为单位,如424D就是一个字)为序号单位进行,“h”表示是16进制数。 424D 4690 0000 0000 0000 4600 0000 2800 0000 8000 0000 9000 0000 0100*1000 0300 0000 0090 0000 A00F 0000 A00F 0000 0000 0000 0000 0000*00F8 0000 E007 0000 1F00 0000 0000 0000*02F1 84F1 04F1 84F1 84F1 06F2 84F1 06F2 04F2 86F2 06F2 86F2 86F2 ...... BMP文件可分为四个部分:位图文件头、位图信息头、彩色板、图像数据阵列,在上图中已用*分隔。 一、图像文件头 1)1:图像文件头。424Dh=’BM’,表示是Windows支持的BMP 格式。

2)2-3:整个文件大小。4690 0000,为00009046h=36934。 3)4-5:保留,必须设置为0。 4)6-7:从文件开始到位图数据之间的偏移量。4600 0000,为00000046h=70,上面的文件头就是35字=70字节。 5)8-9:位图图信息头长度。 6)10-11:位图宽度,以像素为单位。8000 0000,为00000080h=128。 7)12-13:位图高度,以像素为单位。9000 0000,为00000090h=144。 8)14:位图的位面数,该值总是1。0100,为0001h=1。 二、位图信息头 9)15:每个像素的位数。有1(单色),4(16色),8(256色),16(64K色,高彩色),24(16M色,真彩色),32(4096M色,增强

source命令与“.”点命令

source命令与“.”点命令 source 命令是bash shell 的内置命令,从C Shell 而来。 source 命令的另一种写法是点符号,用法和source 相同,从Bourne Shell而来。 source 命令可以强行让一个脚本去立即影响当前的环境。 source 命令会强制执行脚本中的全部命令,而忽略文件的权限。 source 命令通常用于重新执行刚修改的初始化文件,如.bash_profile 和.profile 等等。source 命令可以影响执行脚本的父shell的环境,而export 则只能影响其子shell的环境。 使用方法举例: $source ~/.bashrc 或者: $. ~/.bashrc 执行后~/.bashrc 中的内容立即生效。 一个典型的用处是,在使用Android 的mm 等相关命令时,需要先执行以下命令:$cd $source ./build/envsetup.sh 或者$. ./build/envsetup.sh source命令(从C Shell 而来)是bash shell的内置命令。点命令,就是个点符号,(从Bourne Shell而来)是source的另一名称。同样的,当前脚本中设置的变量也将作为脚本的环境,source(或点)命令通常用于重新执行刚修改的初始化文件,如.bash_profile 和.profile 等等。例如,如果在登录后对.bash_profile 中的EDITER 和TERM 变量做了修改,则能用source 命令重新执行.bash_profile 中的命令而不用注销并重新登录。 source命令的作用就是用来执行一个脚本,那么: source a.sh 同直接执行./a.sh 有什么不同呢,比如你在一个脚本里export $KKK=111 ,如果你用./a.sh执行该脚本,执行完毕后,你运行echo $KKK ,发现没有值,如果你用source 来执行,然后再echo ,就会发现KKK=111。因为调用./a.sh来执行shell是在一个子shell里运行的,所以执行后,结果并没有反应到父shell里,不过source不同,他就是在本shell 中执行的,所以能看到结果。 “.”点命令是shell的一个内部命令,它从指定的shell 文件中读入所有命令语句并在

JSP jspinclude包含动作

JSP 包含动作 动作指令表示在当前的JSP页面中,包含静态或动态资源。前面已经介绍过include指令,它是在JSP文件被转换成Servlet的时候引入文件,而这里的jsp:include动作不同,插入文件的时间是在页面被请求的时候。动作的文件引入时间决定了它的效率要稍微差一点,而且被引用文件不能包含某些JSP代码(例如不能设置HTTP头),但它的灵活性却要好得多。动作可以在当前JSP文件中包含txt文件、JSP文件、HTML文件和Servlet文件。 例如: 下面对jsp:include标签具体格式中的参数说明如下: ●page="{relativeURL | <%= expression %>} 该参数为一相对路径,或者是代表相对路径的表达式。如果路径以“/”开头,那么路径主要是参照JSP应用的上下关系路径。如果路径是以文件名或目录名开头,那么这个路径就是正在使用JSP文件的当前路径。 ●flush="true" 注意,这里用户必须使用flush="true",不能使用false值,默认值为false。 ●>) 从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准输入流中读取一个指定类型(即变量x的类型)的数据。 在C++中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h。下面就把此类的文件操作过程一一道来。 一、打开文件 在fstream类中,有一个成员函数open(),就是用来打开文件的,其原型是: void open(const char* filename,int mode,int access); 参数: filename:要打开的文件名 mode:要打开文件的方式 access:打开文件的属性 打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下: ios::app:以追加的方式打开文件 ios::ate:文件打开后定位到文件尾,ios:app就包含有此属性 ios::binary:以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文ios::in:文件以输入方式打开(文件数据输入到内存) ios::out:文件以输出方式打开(内存数据输出到文件) ios::nocreate:不建立文件,所以文件不存在时打开失败 ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败 ios::trunc:如果文件存在,把文件长度设为0 可以用“或”把以上属性连接起来,如ios::out|ios::binary 打开文件的属性取值是: 0:普通文件,打开访问 1:只读文件 2:隐含文件 4:系统文件 可以用“或”或者“+”把以上属性连接起来,如3或1|2就是以只读和隐含属性打开文件。 例如:以二进制输入方式打开文件c:\config.sys fstream file1; file1.open("c:\\config.sys",ios::binary|ios::in,0); 如果open函数只有文件名一个参数,则是以读/写普通文件打开,即: file1.open("c:\\config.sys"); <=> file1.open("c:\\config.sys",ios::in|ios::out,0); 另外,fstream还有和open()一样的构造函数,对于上例,在定义的时侯就可以打开文件了:

北航《C语言程序设计》在线作业二满分答案

北航《C语言程序设计》在线作业二 一、单选题(共 10 道试题,共 40 分。) 1. 若用数组名作为函数调用时的参数,则实际上传递给形参的是 A. 数组元素的个数 B. 数组的第一个元素值 C. 数组中全部元素的值 D. 数组首地址 -----------------选择:D 2. 下列关于#include命令的叙述中,错误的是 A. #include命令中,文件名可以用双引号或尖括号括起来 B. 一个被包含文件中又可以包含另一个被包含文件 C. 一个#include命令中可以指定多个被包含文件 D. 一个#include命令中只能指定一个被包含文件 -----------------选择:C 3. 在C程序中,若对函数类型未加说明,则函数的隐含类型为( ) A. int B. double C. void D. char -----------------选择:A 4. 表达式( )的值是0。 A. 3%5 B. 3/5.0 C. 3/5 D. 3<5 -----------------选择:C 5. 已知:int a=5; 执行以下的程序段后输出结果为_______.Do { printf(“%dn”,a--); } while (!a); A. 5 B. 4 C. 陷入死循环 D. 5 4 3 2 1 -----------------选择:A 6. 有以下语句:int b;char c[10];,则正确的输入语句是_______ A. scanf("%d%s",&b,&c); B. scanf("%d%s",&b,c); C. scanf("%d%s",b,c); D. scanf("%d%s",b,&c); -----------------选择:B 7. 若有定义:int x; 要将x强制转换为双精度型,应该写成

BMP文件格式

BMP文件格式 简介 BMP(Bitmap-File)图形文件是Windows采用的图形文件格式,在Windows环境下运行的所有图象处理软件都支持BMP图象文件格式。Wi ndows系统内部各图像绘制操作都是以BMP为基础的。Windows 3.0以前的BMP图文件格式与显示设备有关,因此把这种BMP图象文件格式称为设备相关位图DDB(device-dependent bitmap)文件格式。Windows 3.0以后的BMP图象文件与显示设备无关,因此把这种BM P图象文件格式称为设备无关位图DIB(device-independent bitmap)格式(注:Windows 3.0以后,在系统中仍然存在DDB位图,象BitBl t()这种函数就是基于DDB位图的,只不过如果你想将图像以BMP格式保存到磁盘文件中时,微软极力推荐你以DIB格式保存),目的是为了让Windows能够在任何类型的显示设备上显示所存储的图象。BMP位图文件默认的文件扩展名是BMP或者bmp(有时它也会以.DIB 或.RLE作扩展名)。 此图用WinHex软件打开后结果如下:(在介绍完bmp文件格式后会具体分析这些数字,最后也有matlab对此图的分析)注:此图是24位真彩色图。 文件结构 位图文件可看成由4个部分组成:位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、彩色表(color table)和定义位图的字节阵列,它具有如下所示的形式。

位图文件结构可综合在表6-01中。表01 位图文件结构内容摘要

构件详解 1. 位图文件头 位图文件头包含有关于文件类型、文件大小、存放位置等信息,在Windows 3.0以上版本的位图文件中用BITMAPFILEHEADER结构来定义: typedef struct tagBITMAPFILEHEADER { /* bmfh */ UINT bfType; DWORD bfSize; UINT bfReserved1; UINT bfReserved2; DWORD bfOffBits; } BITMAPFILEHEADER; 其中: bfType 说明文件的类型.(该值必需是0x4D42,也就是字符'BM'。我们不需要判断OS/2的位图标识,这么做现在来看似乎已经没有什么意义了,而且如果要支持OS/2的位图,程序将变得很繁琐。所以,在此只建议你检察'BM'标识) bfSize 说明文件的大小,用字节为单位bfReserved1 保留,必须设置为0

source Insight工程的说明

Source Insight工程的说明 说明:source insight 是我们在工作中最常用到的软件,它对我们查找函数,变量,修改代码起到了不可估量的作用。熟练运用source insight可以提高工作效率,了解整个工程的架构是很有帮助的。 一source Insight工程的建立步骤 1、打开source insight 如下图所示:

2、工程目录的旁边建立一个文件夹,名字为code_s(文件夹名字自己可以为任意,最好能够区 分工程)。 3、在source insight里面,状态栏上,根据如下顺序,建立工程project- new project,点击后如 下图所示:

在上图中,new project name : 创建你要建立的source insight 工程的名字。例如我们创建为M53_code. Where do you want to stor the project data files? 是我们要将创建的工程文件放入的路径是什么?我们选择刚才我们创建的code_s文件夹的路径。最后如图所示。 4、按OK后,进入如下图所示的界面。 在这个界面里,所有的选项我们都默认,但是选择工程路径是我们需要建立的工程路径。例如我们现在要建立的工程路径是F:\M53\code那么,我们就要选择我们的工程路径。如图下图所示

5、按OK,进入下一个窗口。如图所示。 我们选择,后,如下图所示, 我们在前面全部选择,然后按OK。进行搜索源工程文件,搜索完成后,如图所示。 工程不同,文件的数量不同。这里有7472个文件。我们按确定后,按close,关闭上述窗口。工程建立成功。 二source insight 工程与源工程同步 在上述,工程建立之后,由于我们需要在source insight修改的时候,修改源工程,那么我们需

森林插件使用方法

使用方法与技巧 【插件使用方法】 1、依照下图所示步骤创建一条闭合的线作为树的边界。在创建面板中选择itoosoft,点击Forest Pro钮,在刚才创建的线框中点击创建出树林,以一个“F”表示。 Size中调节树的宽度和高度,按实际大小输入就可以了。 2、进入修改面板,这里列出了修改面板的内容,下面逐项解释。Area是限定树林的边界的,在Include下点击pick,并选取刚才创建的线框。大家可以看到树了,一个白点代表一棵树。Exclude为排除,这里我们又画了一个小的线框,并把他排除了,如图。也可让树沿着线种植,用Following spline。

3、Distribution Map决定了树在边界中的具体分布,在Bitmap的下拉菜单中选择树的单元分布图,有组团式,分散式,阵列式,自定义等,(上面有缩略图,很直观的,白点表示树) Size为分布单元的尺寸,在屏幕中每四个桔色的十字标出一个分布单元。Tree Separation决定树间的最小间距,25%的树宽即可。如果是草丛,应将间距调至10%以下。

4、下面我们对树林进行优化,使所有的树都朝向摄像机,并且去除摄像机看不见的树。进入Camera面板,pick选取摄像机。钩上Limit to visibility和Trees facing the camera.这时移动摄像机,会看见树的方向随之转动。Density Fallof为衰减,让树林随着远离摄

像机而变稀少。 5、Surface面板控制树在山坡上的种植。用pick选取山的模型。山大家自己做吧,这里只讲解各个参数的意义:Altitude Range为海拔高度,top与bottom决定树的上下海拔界限。Slope Angle Range为倾角,max与min决定树能种在多陡的山坡上Transform变换面板,是树产生一些随机的变化,如:Translation平移,Rotation旋转,Scale比例,其中,最常用的Scale,可以随机改变树的大小,以上随机变化都有可调节的最大值和最小

BMP图像格式分析

BMP图像格式分析 BMP图像文件格式是微软公司为其Windows环境设置的标准图像格式,而且 Windows系统软件中还同时内含了一系列支持BMP图像处理的API函数,随着Windows 在世界范围内的不断普及,BMP文件格式无疑也已经成为PC机上的流行图像文件格式。它的主要特点可以概括为:文件结构与PCX文件格式类似,每个文件只能存放一幅图像;图像数据是否采用压缩方式存放,取决于文件的大小与格式,即压缩处理成为图像文件的一个选项,用户可以根据需要进行选择。其中,非压缩格式是BMP图像文件所采用的一种通用格式。但是,如果用户确定将BMP文件格式压缩处理,则Windows设计了两种压缩方式:如果图像为16色模式,则采用RLE4压缩方式,若图像为256色模式,则采用RLE8压缩方式。同时,BMP 图像文件格式可以存储单色、16色、256色以及真彩色四种图像数据,,其数据的排列顺序与一般文件不同,它以图像的左下角为起点存储图像,而不是以图像的左上角为起点;而且BMP图像文件格式中还存在另外一个与众不同的特点,即其调色板数据所采用的数据结构中,红、绿、蓝三种基色数据的排列顺序也恰好与其它图像文件格式相反。总之,BMP图像文件格式拥有许多适合于Windows环境的新特色,而且随着Windows版本的不断更新,微软公司也在不断改进其BMP 图像文件格式,例如:当前BMP图像文件版本中允许采用32位颜色表,而且针对32位Windows 的产生,相应的API 函数也在不断地报陈出新,这些无疑都同时促成了BMP文件格式的不断风靡。但由于BMP文件格式只适合于Windows上的应用软件,而对于DOS环境中的各种应用软件则无法提供相应的支持手段,因此这无疑是阻碍BMP文件格式的流通程度超过PCX文件格式的一个重要因素。 Windows中定义了两种位图文件类型,即一般位图文件格式与设备无关位图文件格式。其中,由于设备无关位图(DIB)文件格式具有更强的灵活性与完整的图像数据、压缩方式等定义。BMP图像文件的结构可以分为如下三个部分:文件头、调色板数据以及图像数据。其中文件头的长度为固定值54个字节;调色板数据对所有不超过256色的图像模式都需要进行设置,即使是单色图像模式也不例外,但是对于真彩色图像模式,其对应的BMP文件结构中却不存在相应调色板数据的设置信息;图像数据既可以采用一定的压缩算法进行处理,也可以不必对图像数据进行压缩处理,这不仅与图像文件的大小相关,而且也与对应的图像处理软件是否支持经过压缩处理的BMP图像文件相关。以下将分别介绍BMP图像文件结构中的这三个重要组成部分。特别值得注意的是:BMP 图像文件结构设计得相当简单,这无疑有利于图像文件的处理速度,但是同时也使得 BMP图像文件格式具有一定的局限性,即一个BMP图像文件只能存储一幅图像。 BMP图像文件的文件头定义 Windows中将BMP图像文件的文件头分成两个数据结构,其中一个数据结构中包含BMP文件的类型、大小和打印格式等信息,称为BITMAPFILEHEADERl另外一个数据结构中则包含BMP文件的尺寸定义等信息,称为BITMAPINFOHEADERl 如果图像文件还需要调色板数据,则将其存放在文件头信息之后。 BITMAPFIlEHEADER数据结构在Windows.h中的定义为: typedef struCttagBITMAPFIlEHEADER { WORD bftype; DWORD bfsiZe: WORD bfReservedl; WORD bgReserved2: DWORD bfoffBits: }BITMAPFILEHEADER; 其中,bfrype在图像文件存储空间中的数据地址为0,数据类型为unsignedchar,内容为固定值“BM”,用于标志文件格式,表示该图像文件为BMP文件。 bfsize的数据地址为2,类型为unsignedlong,它以字节为单位,定义位图文件的大小。 bfReservedl与bfReserved2的数据地址分别为6和8,数据类型则都为unsignedint,二者都是BMP文件的保留字,没有任何意义,其值必须为0. bfoffBits的数据地址为10,数据类型为unsignedlong,它以字节为单位,指示图像数据在文件内的起始地址,即图像数

相关文档
相关文档 最新文档