精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
作者 | 正文 | ||||||||||||||||||||||||||||||||||||||||||
发表时间:2009-03-23
最后修改:2009-03-27
读 《C++ Primer Plus》第17章1-3节 一 输出 cstdio(stdio.h) cstring(string.h) iostream(iostream.h) cmath(math.h) 1. 输出字符串的地址:cout<<(void *)amount 对于没有void*类型的系统,则要强制转换成unsigned或unsigned long类型 2. ostream的两个输出方法: a) ostream & put(char); 在原型合适的情况下,可以将数值型参数用于put,让函数原型自动将参数转换为正确的char值。 b) basic_ostream<char T,traints>& wirte(const char_type* s, streamsize n); 第一个参数为要显示的字符串的地址,第二个参数指出要显示多少个字符。返回类型为ostream &. 该函数不会将数字转换位相应的字符,而是传输内存中存储的位表示。例如4字节的long值将最为4个独立的字节被输出。输出设备将把每个字节作为ASCII码表示。 3. 刷新缓冲区: a) 输入即将发生时刷新缓冲区 b) 将换行符发送到缓冲区后,将刷新缓冲区 强制刷新缓冲区: cout<<flush;(刷新buffer) 也可以使用flush(cout); cout<<endl;(刷新buffer并且插入一个换行符) 4. 用cout进行格式化 a) 修改显示的使用的计数系统 i. 使用dec,hex,oct,即dec(cout) ii. cout<<hex;直到下一次改变输出方式时为止 b) 调整字段的宽度 i. int width() 返回字段宽度的当前设置 ii. int width(int i) 设置字段宽度为i个空格,并返回以前的字段宽度 width方法只影响接下来显示的一个项目,然后字段宽度将恢复为默认值。 用法如下:cout<<”#”;cout.width(12);cout<<12<<”#”; 默认为右对齐。 c) 设计填充字符 cout.fill(character); 新的填充字符将一直有效,只到更改它为止。 d) 设计浮点数的显示精度cout.precision(2); 一直有效,直到被更改 默认模式下,它指的是显示的总位数。在定点模式和科学模式下,精度值的是小数点后的位数。 e) 打印末尾的0和小数点 cout.setf(ios_base::showpoint); 如果使用的是iostream.h则可能是ios::showpoint cout.setf(fmtflags)的一些位置常量的说明(fmtflags是bitmask(存储各个位值的类型)的typedef形式)
cout.setf(long,long)的说明(返回值是,ios_base::fmtflags):
内部对齐是指的是:将符号或基数前缀放在字段的左侧,余下的数字放在字段的右侧。 void unsetf(fmtflags mask); 消除设计位 启用默认模式的方法: cout.setf(ios_base::showpoint); cout.unsetf(ios_base::floatfiled);
用法如:cout<<left<<”hello world”; iomanip提供的控制符: setprecision(),setfill(),setw(); 用法如普通控制符,如cout<<setfill(); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|||||||||||||||||||||||||||||||||||||||||||
返回顶楼 | |||||||||||||||||||||||||||||||||||||||||||
浏览 3137 次