如何使用cout格式化输出

How to format output using cout

本文关键字:输出 格式化 cout 何使用      更新时间:2023-10-16

我知道很可能使用其他方法(如printf())来完成此操作,但我想知道是否可以使用cout来完成。

Insert -8:   -8 90 34 -78 34 235 9 -12 653
Insert -78:  -78 -8 34 90 34 235 9 -12 653

这是排序算法的部分输出。它显示了每次通过后发生的情况。每个数字都来自同一个向量。怎么可能有负号总是对齐的第一个元素如上所示(元素之后不重要)?

目前我的代码是这样的:

cout << "Insert " << my_vector[pos] << ": ";
for (int k = 0; k < size_of_vector; k++) {
  cout << my_vector[k] << " ";
}
cout << endl;

但是,我的代码的输出看起来像这样:

Insert -8: -8 90 34 -78 34 235 9 -12 653 
Insert -78: -78 -8 34 90 34 235 9 -12 653 

一种简单的方法是在指定的字段宽度中输出单个字符串,例如

cout
    << "Insert "
    << setw( 14 ) << to_string( my_vector[pos] ) + ":";

幻数需要被选择以容纳最大位数和符号。

免责声明:编译器未触及的代码