"cout"的格式化输出范围是多少
what's the range of the formatted output of `cout`
在我的程序中,将有两行输出:第一行的数字是小于1000的整数;第二行中的数字是0到10之间的浮点数。我想要的输出格式是:
正确的格式,下面是我的尝试(所有输出都是最后四行):案例1 - 5
- 无格式输出;在图片中我们可以看到应该打印的数字
- 第一行不带format,第二行带format第1行中的数字;只有第一个数字是正确的,大于100的数字用科学记数法
- 两行都带有format就像情况2一样,
<<setw(3)<<setfill('0')
似乎只工作一次将43更改为043,然后它将不再工作 - 加
noshowpoint
。如果我单独打印*(p + 2)
,它总是打印118
有或没有格式。但是如果我在for
循环中打印*(p + 2)
,输出仍然是1.2e+002
,除了第一个。但是如果我直接打印数字118
,输出是正确的。
那么,我的代码哪一部分是错的呢?以正确的格式输出答案的正确方法是什么?
事实上,并非所有IO格式化操纵符都是持久的。其中一些,如std::setw
,只在下一次操作时生效,然后过期。你的代码没有任何"错误";你只需要再次使用机械手。参考您喜欢的c++标准库文档来检查您使用的每个操纵符的持久性。
那么,对于第三个,您设置了showpoint
,但从未使用noshowpoint
取消它,因此下一行问题。
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double x[4]= {43.0,118.0,9.0,5.0};
double y[4] = {9.5, 9.0, 8.5, 8.0};
// your code goes here
for (int i=0; i< 4; i++)
{
cout<<noshowpoint<<setprecision(3)<<setw(3)<<setfill('0')<<(x[i]) <<" ";
cout<<showpoint<<setprecision(2)<<y[i] << endl;
}
return 0;
}
给出期望的输出。
请注意,您为流设置了showpoint
和setprecision
操纵符,而不是为单个输出设置的。
相关文章:
- 复制列表初始化的隐式转换的等级是多少
- while循环中while循环的时间复杂度是多少
- 在条件变量中触发错误信号的频率是多少
- 函数的时间复杂度是多少?
- 重载运算符的范围是什么?它是否会影响作为类成员的集合的插入函数?
- 对于四轴飞行器,PID中I控制器的理想值应该是多少
- 在C++中使用并行化的预期速度是多少(不是 OpenMp,而是 <thread>)
- 在 Linux 中存储区域设置名称的缓冲区大小应该是多少?
- 可以读入进程内存的最大块大小是多少?
- 在二维向量或数组中可以存储的最大元素数是多少?
- C++中 std::map 的运行时复杂度是多少?
- 在这里,当我们比较 if(vc[i]==vc1[i]) 时,它是向量数组. 实际上比较的值是多少,
- 将树节点添加到向量向量中的 n 元树遍历的平均和最坏情况时间复杂度是多少?
- 这个递归函数有什么作用?运行时的复杂性是多少?
- PTRACE_TRACEME的范围是多少?
- 范围内临时对象的生存期是多少?
- 统一实际分布的范围限制是多少
- 在类方法中使用新运算符动态分配内存的寿命和范围是多少
- "cout"的格式化输出范围是多少
- 范围变化时的复杂性是多少?