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

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

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

你是否正在寻找关于ostream的内容?让我把最宝贵的东西奉献给你:

ostream_operator_ostream是一个类吗

重载的<<操作符

ostream类重新定义了<< 操作符。这时应叫作 插入(insertion)操作符

插入操作符被重载,使之能够识别C++中所有的基本类型:
unsigned char signed char
char short
unsigned short int
unsigned int long
unsigned long float
double long double

ostream类还为下面的指针类型定义了插入操作符函数:
const signed char * const unsigned char *
const char * void *

重载的operator<<()函数返回一个指向ostream对象的引用,这使得可以将输出连接起来。

其他ostream方法

put() 方法,用于显示字符。最初原型如下:
ostream & put(char);
当前标准与此相同,但被模板化,以适用于wchar_t 。

用类方法表示法来调用:
cout.put('w'); // display the w character

该方法也返回一个指向调用对象的引用,因此可以用它来拼接输出:
cout.put('i').put('t'); // display "it" with two put()calls

在原型合适的情况下,可以将数值型参数用于put(),让函数原型自动将参数转换为正确的char值。例如:
cout.put(65); // display the A character
cout.put(66.3); // display the B character
第二条语句将double值66.3转换为char值66,并显示ASCII码对应的字符。

write() 方法,用于显示整个字符串,其模板原型如下:

basic_ostream<charT, traits> & write (const char_type * s, streamsize n);

write()的第一个参数提供了要显示的字符串的地址,第二个参数指出要显示多少个字符。
使用cout调用write()时,将调用char具体化,因此返回类型为ostream & 。

该方法并不会在遇到空字符时停止打印字符,而是打印指定数目的字符,即使超出了字符串的边界。

write()方法也可用于数值数据,只需将数字的地址强制转换为char * ,然后传递给它:
long val = 560031841;
cout.write( (char *) &val, sizeof(long));
这不会将数字转换为相应的字符,而是传输内存中存储的位表示。
4字节的long值将作为4个独立的字节被传输。输出设备将把每个字节作为ASCII码进行解释。因此560031841将被显示为4个字符的组合。

刷新输出缓冲区

除了将换行符发送到缓冲区,会刷新缓冲区以外。在输入即将发生时也会刷新缓冲区。例如:
cout << "Enter a number: ";
float num;
cin >> num;
程序期待输入这一事实,将导致它立刻显示cout消息,即使输出字符串中没有换行符。

另外,可以使用控制符flush 刷新缓冲区,或控制符endl 刷新缓冲区,并插入一个换行符:
cout << "Hello, good-looking! " << flush;
cout << "Wait just a moment, please. " << endl;

事实上,控制符也是函数。例如,可以直接调用flush()来刷新cout缓冲区:
flush(cout);

由于ostream类对<< 插入操作符进行了重载,使得表达式:
cout << flush
将被替换为函数调用flush(cout)。

cout格式化

1. 修改显示时使用的计数系统

要控制整数以十进制、十六进制还是八进制显示,可以使用dec、hex、oct 控制符,它们都在std名称空间中。

例如,下面的函数调用:
hex(cout);
将cout对象的计数系统格式状态设置为十六进制,直到将格式状态设置为其他选项为止。

控制符不是成员函数,不必通过对象来调用。通常的使用方式为:
cout << hex;

2. 调整字段宽度

width() 成员函数将长度不同的数字放到宽度相同的字段中,原型为:

int width();
int width(int i);

第一种格式返回字段宽度的当前值。
第二种格式将字段宽度设置为i个空格,并返回以前的字段宽度值。

width()方法只影响将显示的下一个项目,然后字段宽度将恢复为默认值。
例如,下面的语句:
cout << '#';
cout.width(12); // 由于width()是成员函数,因此必须使用对象来调用它
cout << 12 << "#" << 24 << "#/n";


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

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

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