注册 登录
编程论坛 C++教室

cout格式化输出

yyx614 发布于 2015-10-26 14:11, 599 次点击
应用cout输出0,输出结果为 0.00000E+0
其中总占11个字符,+号后边一个0,切实大写E
10 回复
#2
rjsp2015-10-26 16:03
首先,没有这样的输出格式,按C++标准,科学计数法应该输出 0.000000e+00;VC++不标准输出 0.000000e+000,当然可以用私有函数设置成标准的输出。
其次,怪模怪样的输出,你得说清楚格式,仅“其中总占11个字符,+号后边一个0,切实大写E”只能说看不懂。
#3
yyx6142015-10-26 16:08
以下是引用rjsp在2015-10-26 16:03:09的发言:

首先,没有这样的输出格式,按C++标准,科学计数法应该输出 0.000000e+00;VC++不标准输出 0.000000e+000,当然可以用私有函数设置成标准的输出。
其次,怪模怪样的输出,你得说清楚格式,仅“其中总占11个字符,+号后边一个0,切实大写E”只能说看不懂。
您好!其实我说的就是结果输出成这样0.00000E+0,我也试了,输出都是您说的那几种。您说“私有函数设置成标准的输出”这个怎么编写呀,麻烦您了
#4
yyx6142015-10-26 16:14
回复 2楼 rjsp
您好!其实我说的就是结果输出成这样0.00000E+0,我也试了,输出都是您说的那几种。您说“私有函数设置成标准的输出”这个怎么编写呀,麻烦您了
#5
rjsp2015-10-26 16:14
您说“私有函数设置成标准的输出”这个怎么编写呀,麻烦您了  --- _set_output_format( _TWO_DIGIT_EXPONENT ),但跟你的问题没有关系呀
#6
yyx6142015-10-26 16:17
回复 5楼 rjsp
怎么通过一个函数实现这种输出形式,应为是初学,您说的我可能不太懂
#7
yyx6142015-10-26 16:18
回复 5楼 rjsp
这个函数内容具体怎么编写呢
#8
rjsp2015-10-26 16:24
回复 7楼 yyx614
我不清楚你要的格式是什么,提供你两个思路吧
第一种,先用 sprintf 打印出足够多的有效信息成字符串,然后在字符串中挑拣你要的
第二种,用log10先求出指数,再求出有效数,然后按你要求分别输出
#9
hjx11202015-10-28 06:27
没有实例,这种问题没用意义
#10
yyx6142015-10-28 09:35
回复 9楼 hjx1120
应用cout输出
0,输出结果为 0.00000E+0
0.01               1.00000E-2
0.085             8.50000E-2
其中总占11个字符
怎么编写程序实现
#11
hjx11202015-10-28 11:21
可以自定义一个格式化输出格式
楼主可以去看看ios_base类
http://www.


C++ Primer Plus 第十七章节有讲解cout格式化输出
1