b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

ostream_operator_ostream是一个类吗_孤云出岫, 去留一无所系. 朗镜悬空,静躁两不相(2)

电脑杂谈  发布时间:2016-06-01 20:19:01  来源:网络整理


输出如下:
# 12#24#
12被放到宽度为12个字符的字段的最右边,这被称为右对齐

C++永远不会截短数据,如果试图在宽度为2的字段中打印一个7位值,C++将增宽字段,以容纳该数据。

3. 填充字符

默认情况下,cout用空格填充字段中未被使用的部分。


可以用fill() 成员函数来改变填充字符。例如:
cout.fill('*');
将填充字符改为星号。

新的填充字符将一直有效,直到更改它为止。

4. 设置浮点数的显示精度

浮点数精度的含义取决于输出模式。
默认模式下,它指的是显示的总位数。
在定点模式和科学模式下,精度指的是小数点后面的位数。

默认精度为6位,不过末尾的0将不显示。

precision() 成员函数能设置其他值。例如:
cout.precision(2);
将cout的精度设置为2。

新的精度设置将一直有效,直到被重新设置。

5. setf()

ios_base类提供了一个setf()函数(用于set标记),能够控制多种格式化特性。

seft()函数有两个原型。第一个为:

fmtflags setf (fmtflags);

fmtflags是bitmask类型的typedef名,用于存储格式标记。
bitmask类型是一种用来存储各个位值的类型。它可以是整形、枚举,也可以是STL bitset容器。其中的每一位都可以单独访问,都有自己的含义。

这个版本的setf()用来设置单个位控制的格式信息。返回值是标记以前的设置。

ios_base类定义了代表位值的常量,下图列出了其中的一些定义。

格式常量

使用它们时,必须加上作用域解析操作符。例如,ios_base::uppercase 。
修改将一直有效,直到被覆盖为止。

seft()函数第二个原型接受两个参数,并返回以前的设置:

fmtflags setf (fmtflags, fmtflags);

这种重载格式用于设置由多位控制的格式选项。

第一个参数和前面一样,是一个包含了所需设置的fmtflags值,。

第二个参数指出要清除第一个参数中的哪些位。

举例说明,将第3位设置为1表示以10为基数,将第4位设置为1表示以8为基数,将第5位设置为1表示以16为基数。假设现在是以10为基数,而要将它设置为以16为基数,则不仅需要将第5位设置为1,还需要将第3位设置为0。这叫作清除位(clearing the bit)

ios_base类为此定义了常量。

seft(long,long)的参数


定点表示法意味着使用格式123.4来表示浮点值,而不管数字的长度如何。
科学表示法则意味着使用格式1.23e04,而不考虑数字的长度。

定点表示法和科学表示法都有下面的两个特征:
精度指的是小数点位数,而不是总位数。
显示末尾的0。

可以声明一个fmtflags类型的值,来保存cout的默认格式,以备以后恢复:
ios_base::fmtflags old = cout.setf(fmtflags);
cout.setf(old);

6. unsetf()

unsetf()成员函数用来消除调用setf()设置的效果。原型如下:

void unsetf(fmtflags mask);

mask是位模式,其中所有的位都设置为1,将使得对应的位被复位。也就是说,setf()将位设置为1,unsetf()将位恢复为0。例如:
cout.setf(ios_base::showpoint); // show trailing decimal point
cout.unsetf(ios_base::boolalpha); // don't show trailing decimal point
cout.setf(ios_base::boolalpha); // display true,false
cout.unsetf(ios_base::boolalpha); // display 1,0

没有专门指示浮点数默认显示模式的标记。仅当只有定点位被设置时使用定点表示法;仅当只有科学位被设置时使用科学表示法;对于其他组合,如没有位被设置或两位都被设置时,将使用默认模式。
启用默认模式的方法之一:
cout.setf(0, ios_base::floatfield); // go to default mode
第二个参数关闭这两位,第一个参数不设置任何位。

启用默认模式的方法之二:
cout.unsetf(ios_base::floatfield);

如果已知cout出于定点状态,则可以使用参数ios_base::fixed调用函数unsetf()来切换到默认模式。但无论cout当前状态如何,使用参数ios_base::floatfield调用函数unsetf()都将切换到默认模式。

7. 标准控制符

C++提供了多个控制符,能够调用setf(),并自动提供正确的参数。这些控制符的工作方式就像前面介绍过的dex、hex和oct一样。

下图列出了这些控制符以及其他一些控制符。

一些标准控制符



本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shenmilingyu/article-7296-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...