【发布时间】:2015-01-25 23:10:06
【问题描述】:
这是我的问题:
给定三个已经声明和初始化的 double 类型的变量 a、b、c,编写一些代码,将它们中的每一个都打印在同一行的 15 个位置字段中,这样科学(或 e -符号或指数符号)被避免。每个数字应在小数点右侧打印 5 位数字。例如,如果它们的值为 24.014268319、14309、0.00937608,则输出为:
|xxxxxxx24.01427xxxx14309.00000xxxxxxxx0.00938
注意:竖线,| ,左上角代表打印区域的左边缘;不能打印出来。此外,我们在上面的输出中显示 x 来表示空格——您的输出实际上不应该有 x!
这实际上是我想要做的:
cout << fixed << setprecision(5) << 24.014268319 << setw(5) << 5252.25151516 << endl;
但这会产生以下输出:
24.014275252.25152
显然我没有解释如何正确使用setw(n),有没有人看到我在这里做错了什么?
【问题讨论】:
-
你期待什么输出?您发送给
cout的第二个号码不在问题陈述中,您在第一个和第二个号码之间输出一个空格。 -
你不应该说
setw(15)吗? -
@CaptainObvlious 产生的数字是随机的,所以我只是提供了一个随机数。我期待
24.01427 5252.25152 -
@rodrigo,这解决了我的问题,但为什么
setw(5)不在数字之间提供任何空格? -
尝试在第一个数字前使用
setw(15)。