标准输出流
ostream预定义了三个输出流对象cout、cerr和clog,而且还重载了插入运算符“<<”,使用它可以输出各种类型的数据,这是标准输出流的基本用法;此外,ostream还提供了put()、write()等成员函数用来输出数据,本节就来学习一下这些成员函数。
1、put()函数
在ostream类中定义了可以输出单个字符的成员函数put(),其函数声明如下所示:
ostream& put(char ch);
或
ostream& put(const char ch);
put()函数可以将一个字符型变量的值或一个字符常量输出到屏幕上,其返回值为ostream类对象引用。为加深读者的理解,接下来通过一个案例来演示其用法,如例1所示。
例1
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 char ch = 'a';
6 cout.put(ch) << endl;
7 cout.put('a').put('b').put('c') << endl;
8 system("pause");
9 return 0;
10 }
运行结果如图1所示。
图1 例1运行结果
在例1中,put()函数既输出了字符变量ch又输出了字符常量’a’、’b’、’c’,而且put()函数可以被cout对象连续调用。
2、write()函数
write()函数可以将一个字符串的部分或全部字符送到输出流,其函数声明如下所示:
ostream& write(const char* str, int n);
该函数第一个参数是要输出的字符串的地址,第二个参数是要输出的字符个数。若要输出字符串的全部字符,则第二个参数的值可以通过函数strlen()求出。函数返回值为ostream类对象的引用。
关于write()函数的用法,我们可以通过一个案例来演示,如例2所示。
例2
1 #include <iostream>
2 using namespace std;
3 int main()
4 {
5 char* p = "chuan zhi bo ke";
6 cout.write(p, 8).put('\n');
7 cout.write(p, strlen(p)) << endl;
8 system("pause");
9 return 0;
10 }
运行结果如图2所示。
图2 例2运行结果
由图2所知,第一次调用write()函数时,输出了前8个字符,第二次调用时,由strlen()函数求算出字符串长度作为第二个参数,输出了全部字符。通过这两个案例,读者可发现对ostream类的成员函数,都可以连续调用。