C++将输出看做字节流,则需要将数值类型转换为文本类型
重载的<<运算符
输出和指针
对于字符数组,字符串指针,字符串常量,<<符号将直接输出所指向的字符串
如果需要输出字符串地址,强制转化为(void*)
拼接技术
不多说了
其他ostream方法
cout.put(char )
输出单个字符,返回ostream
cout.write(char * , int )
输出字符串ostream
,注:遇到'\0'
不会停止打印刷新缓冲区
cout<<flush; flush(cout);
cout<<endl;
cout格式化输出
- 默认的格式化方式
- 通过使用“控制符“改变输出格式(本质是函数,但不是成员函数)
- 十进制,八进制,十六进制
十六进制:cout<<hex;
或者hex(cout);
八进制:cout<<oct;
或者oct(cout);
十进制:cout<<dec;
或者dec(cout);
- 调整字段宽度
cout.width(int )
返回以前的字段宽度。只对下一次有影响,然后恢复默认值 - 填充字符
cout.fill(char )
设置将一直有效,知道更改 - 设置浮点数的显示精度
浮点数的精度含义取决于输出模式,默认模式
下,精度的含义是:整数位+小数位,
而定点模式
和科学模式
指的是小数点后的位数
这里我们先讨论默认模式
cout.precision()
设置位数,一直有效,直到改动 - 打印末尾的0和小数点
cout.setf(ios_base::showpiont)
可以是默认模式显示省去的0 - 再谈setf()
ios_base类中又一个受保护的数据成员,其中各个标记(各个位)分别控制着格式化的各个方面。
setf()
提供了一种调整标记的途径
setf()
有两个原型:
- fmtflags setf( fmtflags );
- fmtflags setf( fmtflags , fmtflags );
原型1设置单个位控制的格式信息,举一些格式常量:
ios_base::boolalpha 输入和输出bool值,可以为true何false
ios_base::showbase 对于输出,使用C++基数前缀(0,0X)
ios_base::showpoint 显示末尾的小数点
ios_base::uppercase 对于16进制,字母大写
ios_base::showpos 在正数前加+
原型2中,第一个参数同原型1参数功能相同,第二个参数用于消除第一个参数中的哪些位
具体:P-748 - unsetf()
- 头文件iomanip
使用iostream中的一些格式控制不太方便,比如设置宽度。
iomanip提供了一些控制符,最常用的有三个:
setprecision()
setfill()
setw()
可以这样用cout<< setprecision(5)<<...