正文

C++入门 第三章 *3.4.2 在输入流与输出流中使用控制符2008-08-20 19:40:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yzrj/37720.html

分享到:

  上面介绍的是使用cout和cin时的默认格式。但有时人们在输入输出时有一些特殊的要求,如在输出实数时规定字段宽度,只保留两位小数,数据向左或向右对齐等。C++提供了在输入输出流中使用的控制符(有的书中称为操纵符),见书中表3.1。 需要注意的是: 如果使用了控制符,在程序单位的开头除了要加iostream头文件外,还要加iomanip头文件。 举例: 输出双精度数。   double a=123.456789012345;对a赋初值 (1) cout<<a;输出: 123.456  (2) cout<<setprecision(9)<<a;输出: 123.456789  (3) cout<<setprecision(6);恢复默认格式(精度为6) (4) cout<< setiosflags(ios∷fixed);输出: 123.456789 (5) cout<<setiosflags(ios∷fixed)<<setprecision(8)<<a;输出: 123.45678901 (6) cout<<setiosflags(ios∷scientific)<<a;输出: 1.234568e+02 (7) cout<<setiosflags(ios∷scientific)<<setprecision(4)<<a; 输出: 1.2346e02 下面是整数输出的例子: int b=123456;对b赋初值 (1) cout<<b;输出: 123456 (2) cout<<hex<<b; 输出: 1e240     (3) cout<<setiosflags(ios∷uppercase)<<b;输出: 1E240     (4) cout<<setw(10)<<b<<′,′<<b; 输出:     123456,123456 (5) cout<<setfill(′*′)<<setw(10)<<b;输出: **** 123456 (6) cout<<setiosflags(ios∷showpos)<<b;输出: +123456   如果在多个cout语句中使用相同的setw(n),并使用setiosflags(ios∷right),可以实现各行数据右对齐,如果指定相同的精度,可以实现上下小数点对齐。 例3.1 各行小数点对齐。 #include <iostream> #include <iomanip> using namespace std; int main( ) { double a=123.456,b=3.14159,c=-3214.67; cout<<setiosflags(ios∷fixed)<<setiosflags(ios∷right)<<setprecision(2);       cout<<setw(10)<<a<<endl;       cout<<setw(10)<<b<<endl;       cout<<setw(10)<<c<<endl; return 0; }   输出如下:      123.46                   (字段宽度为10,右对齐,取两位小数)          3.14   -3214.67 先统一设置定点形式输出、取两位小数、右对齐。这些设置对其后的输出均有效(除非重新设置),而setw只对其后一个输出项有效,因此必须在输出a,b,c之前都要写setw(10)。

阅读(4007) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册