cout <<??n<<endl;//此时cout仍然是16进制状态,输出58!
cout.unsetf(ios::hex);//我们先关掉这个十六进制状态,这步不能省略!
cout.setf(ios::oct);//开启8进制的状态
cout <<??num <<??endl;//输出142 正确
实际上用成员函数设定输出格式时,即使是以前没有设过格式,这里也需要先cout.unsetf(ios::dec)来取消一遍。不扫干净屋子就不能搬进新家具。
(2)浮点数的格式化输出
1.??精度
系统默认六位小数,精度可以用操纵符setprecision()或者成员函数precision()实现,此处精度和C语言不同,此处的精度是有效数字的位数
double??num = 0;
cin >>??num;
cout.width(12);
cout.precision(10);
cout <<??num <<??endl;
cout <</*setprecision(20)<<*/num<<??endl;??????//放成20位,有效数字会延长
??
控制台界面:
3.335465132132115
??3.335465132//cout.precision(10)拿走了10位有效数字,小数点一位,默认右对齐,左边空一位
3.335465132//系统默认浮点数输出六位有效数字,也是10位precison的设定,可见precision可跨界,而width()不可以,这边并没有出现空位现象
2.??科学计数法:
采用setiosflag(ios::scientific)操纵符或成员函数setf(ios::scientific),这里控制精度也是由cout.precision()函数或者setprecision()操纵符实现的,不过在科学计数法的前提下,精度设置和C语言一致了,就是小数点后的位数.如果不设置,默认也是6位小数的。
double??num = 0;
cin >>??num;
cout.width(6);
cout.precision(4);
cout.setf(ios::scientific);
cout <<??num <<??endl;
控制台界面:
33.515164203205
3.3515e+01 ??//4位小数
(3)字符的格式化输出
C语言的putchar在C++中仍然使用的,比较C++的cout和putchar,二者直接输出65,cout真的65,putchar是输出A的。
(4)字符串的格式化输出
字符串的拼接是通过插入运算符级联而成。没什么好说的。
三、Java语言格式化输出
完全继承了C语言的输出方式,在System.out.printf中实现。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-81056-5.html
保护岛礁
吸取教训