计算机等级考试二级C++各章内容摘要10

计算机等级考试二级C++各章内容摘要10,第1张

计算机等级考试二级C++各章内容摘要10,第2张

第十章c++流
[考点1]c++流的概念
1。c++流的架构要利用c++流,需要在程序中包含相关头文件,才能获得相关流类的声明。为了使用新的标准流,相关头文件的文件名中不能有扩展名。与c++流相关的头文件有:iostream:必须包含此文件,才能使用cin和cout的预定义流对象在标准设备上执行I/O操作。Fstream:要将文件流对象用于磁盘文件的I/O,操作必须包括此文件。Strstream:要在内存字符串空之间使用字符串流对象进行I/O操作,必须包含此文件。Iomanip:要使用setw和fixed等大多数操作符,必须包含这个文件。注意,为了使用新标准的c++流,还必须在程序文件的开头插入名称空之间的以下声明:使用名称空间std;
2。预定义的流对象C++stream有四个预定义的流对象,它们的名称和关联的I/O设备如下:cin标准输入cout标准输出cerr标准错误信息输出clog缓冲标准错误信息输出
3 .提取运算符和插入运算符输入流类istream重载了用于数据输入的运算符,其原型是istream & operator( istream &
form。重载的作用是从输入流中提取数据,赋给一个变量,所以叫提取器。当系统执行cinx操作时,会根据实参x的类型生成对应的提取运算符重载函数的实例,调用这个函数,将x的引用传递给对应的参数,然后从键盘的输入缓冲区读取一个值赋给x(因为参数是x的引用),然后返回istream流,以便继续使用提取运算符为下一个变量输入数据。输出流类ostream重载操作符进行数据输出,其原型有ostream& operator(ostream& &,类型decoration);
表单。重载的作用是将表达式的值插入到输出流中,所以称为插入器。系统执行coutx运算时,首先根据x值的类型调用相应的插入运算符重载函数,将x的值传递给相应的参数,然后执行函数体,将x的值(即参数的值)输出到显示屏,从当前屏幕光标位置开始显示,然后返回ostream流,以便继续使用插入运算符输出下一个表达式的值。上面格式中的“类型修饰符”是指c++中固有类型的修饰符如char、int、double、char*、bool等。也就是说,只要输入输出数据属于C++的这些固有类型之一,就可以直接使用或完成输入输出任务。完成输入输出任务后,又返回第一个参数(即stream对象的引用),所以这两个运算符可以连续使用,比如cinabc等等。
4。通过使用c++流,格式化I/O和未格式化I/O既可以是格式化I/O,也可以是未格式化I/O。计算机处理的所有数据都有内部存储格式和外部呈现的区分,因此需要在输入输出的过程中进行适当的转换,格式化的输入输出可以完成这个任务。格式化I/O的目标是键盘、显示器、打印机和其他字符设备,以及磁盘上的文本文件。对于格式化的I/O,无论是什么数据类型的I/O,在外部设备中都是字符序列。对于未格式化的I/O,数据的内部存储格式与外部存储格式完全相同。因此,无格式的I/O只能用于磁盘文件(或磁带、光盘上的文件),这类文件一般不能用一般的文本编辑器查看。无格式输入和输出需要调用流对象的特殊成员函数实现。
5。运算符c++流提供了提取运算符和插入运算符,使得输入输出的表达简洁、生动、直观,最能体现c++流的风格。C++stream还提供了很多控制输入输出的输入、输出或成员函数,必须由。or-,且不能与运算符or连用,所以与c++流的整体风格不协调。出于这个原因,c++提供了一系列特殊的函数,称为操作符,可以与运算符或。每个运算符都与一个特定的函数相关联,这样就可以间接调用其关联的函数来完成相应的输入输出函数或输入输出控制函数。Endl、setw等。之前常用的,是运算符。有了运算符,c++流操作风格更加统一,输入输出操作更加流畅。
[考点2]输入输出的格式控制
1。默认输入和输出格式。如果没有特殊的格式控件,将使用默认格式进行输入和输出。(1)默认输入格式:c++流识别的输入数据类型及其默认输入格式包括:short、int、long(有符号、无符号):同floating、double、long double带整数常量;同带浮点常量的char(signed,unsigned):第一个非空白char *(signed,unsigned):从第一个非空白字符到下一个空白字符void*:不带前缀的十六进制数bool:标识true或1为true,其他为false(VC 6.0中0为false,其他值识别为true)(2)默认输出格式c++流识别的输出数据类型及其默认输出格式包括:char(signed, unsigned):单字符(不带引号)short、int、long(带符号、无符号):一般整数形式,负数前面加一个-sign char *(带符号、无符号):字符序列(不带引号)float、double、long double:浮点格式或指数格式(科学记数法),看哪个更短void *:不带前缀的十六进制数bool: 1或0
2。 格式标志和格式控制在ios_base,是流库的根类。通过设置标志,可以有意识地控制格式化输入输出的效果。各种格式标志被定义为一组符号常量。这些作为格式标记的常数和整数之间的对应关系是经过精心安排的,每个标记对应一个二进制位。值1表示已经设置了相应的标记,值0表示还没有设置相应的标记。这些二进制位作为标志存储在格式控制变量下端的几个位中,每个流对象都有这样一个格式控制变量作为数据成员。在外部使用这些格式标记时,必须用ios_base::.来修饰它们。格式中一些密切相关的相邻符号定义为字段,有三个:由左、右、内组成的字段称为adjustfield由dec、oct和hex组成的域称为basefield(数值模式域);一个由科学和固定组成的领域叫做浮动领域。ios_base中还定义了Adjustfield、basefield和floatfield,所以在对外使用时也必须加上域修改前缀ios_base::(如iOS _ ios_base::adjustfield)。可以通过调用stream对象的以下三个成员函数直接设置格式控制标志:●fmtflags setf(fmtflags fmtfl,fmt flags mask);
fmt flags类型实际上是int类型。参数fmtf1是格式控制标志,参数mask是域。该函数用于设置域中的标志。在设置之前,清除域中的所有标志。该函数在设置前返回格式控制标志。●fmt flags setf(fmt flags fmt f1);
参数fmtf1是格式控制标志。该函数用于设置指定标志,即指定标志位为1,其他标志位不受影响。该函数在设置前返回格式控制标志。该函数主要用于设置adjustfield、basefield和floatfield三个域之外的格式控制标志。●void unsetf(fmt flags fmt f1);
其中参数fmtf1是格式控制标志或域。该函数用于清除指定的标志位或域,即将指定的标志位或域清零。除了使用上述函数,还可以使用运算符进行格式控制。setf函数对应的运算符是SETIOSFlags(<格式控制标志>),unsetf函数对应的运算符是RESTIOSFlags(格式控制标志或域)。
3。输入和输出宽度的控制宽度的设置可用于输入,但仅对字符串输入有效。对于输出,宽度是指最小输出宽度。当实际数据宽度小于指定宽度时,多余的位置用填充字符填充(通常为空);当实际数据的宽度大于设定宽度时,仍按实际宽度输出。初始宽度值为0,这意味着所有数据将根据实际宽度输出。宽度的设置与格式标志无关。相关运算符有:●setw(int n):设置输入输出的宽度;等效函数调用:io.width(n)其中n是表示宽度的表达式。如果用于输入字符串,实际输入字符串的长度是n-1。也就是说,宽度n甚至包括字符串终止符。width函数返回先前设置的宽度;如果只需要这个返回值,就不要给参数。注意:宽度设置的效果只对一个输入或输出有效。一个数据输入或输出完成后,宽度设置会自动恢复为0(根据数据的实际宽度表示输入和输出)。宽度设置是所有格式设置中的有效设置。
4。在初始状态下,浮点数都是以浮点格式输出。输出精度是指有效位数,小数点的相对位置随数据不同而波动;您可以更改设置,以便以定点格式或指数格式(科学记数法,如3.2156e+2)输出浮点数。在这种情况下,输出精度意味着小数位数,小数点的相对位置是固定的。如有必要,添加舍入或无效零。的设置输出模式有效,直到再次设置浮点数输出模式。相关运算符有:●resetiosflags(iOS _ base::float field):(这是默认设置)浮点数以浮点格式输出;等效函数调用:o . unsetf(iOS _ base::float field)●Fixed:浮点数以定点格式输出;等效函数调用:o.setf (iOS _ base:: fixed,iOS _ base::float field)●Scientific:浮点数以指数格式输出(科学表示);等效函数调用:o.setf (iOS _ base:: scientific,iOS _ base:: floatfield)。
5。输出精度的控制输入输出精度是为浮点数设置的,其实际意义与浮点数输出方式有关:如果采用浮点数格式,精度表示有效位数;如果采用定点格式或指数格式(科学表示),精度就是小数位数。的精度设置用于输出,默认精度为6,可以通过设置更改为任意精度;将精度值设置为0意味着返回到默认精度6。的设置精度值在再次设置精度之前一直有效。的精度设置与格式标志无关。相关运算符有:●setprecision(int n):设置浮点数的精度(有效位或小数);等效函数调用:io.precision(n)其中n是表示精度值的表达式。该函数返回先前设置的精度;如果只需要这个返回值,就不要给参数。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 计算机等级考试二级C++各章内容摘要10

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情