取消setfill_C++格式輸出控制 setiosflags()的激活與取消 | 学步园

發現在使用setiosflags(ios::scientific)后直接用setiosflags(ios::fixed)來輸出小數形式的浮點數時,結果不正確:pi=0x1.9249p+1 。不知道原因是什麽,

#include

#include //不要忘记包含此头文件

using namespace std;

int main()

{ int a;

cout<

cin>>a;

cout<

cout<

cout<

char *pt="China"; //pt指向字符串”China”

cout<

cout<

double pi=22.0/7.0; //计算pi值

cout<

cout<

cout<

cout<

return 0;

}

輸出結果為:

input a:455

dec:455

hex:1c7

oct:707

oct:707

hex:1c7

China

*****China

pi=3.14285714e+000

pi=3.1429e+000

pi=0x1.9249p+1

请按任意键继续. . .

有網友認為“可能是因为 fixed和scientific不是互斥的, 你得把先设置的那个取消掉再设置后一个”。參見:

后將程序修改如下后,正常了:

//C++ 输出格式控制练习

//http://blog.csdn.net/qianfu111/article/details/7020174

#include

#include //不要忘记包含此头文件

using namespace std;

int main()

{

int a;

cout<

cin>>a;

cout<

hex(cout);

cout<

//cout<

cout<

cout<

cout<

char *pt="China"; //pt指向字符串”China”

cout<

cout<

double pi=22.0/7.0; //计算pi值

cout<

cout<

cout<

cout<

//如果注释掉这行,输出结果将是pi=0x1.9249p+1,而不是pi=3.1429

//大概是因为 fixed和scientific不是互斥的, 你得把先设置的那个取消掉再设置后一个

cout<

cout<

cout<

cout<

cout<

cout<

return 0;

}

輸出結果:

input a:455

dec:455

hex:1c7

oct:707

oct:707

hex:1c7

China

*****China

按指數形式輸出:

pi=3.14285714e+000

pi=3.1429e+000

按定點形式輸出:

pi=3.1429

原位輸出:

pi=3.143

请按任意键继续. . .

關於這些操作符,可參考以下解釋:

std::resetiosflags

std::setiosflags

其他資料:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值