将输出与终端对齐时遇到很多麻烦。我想将 vector viz vector< vector<double> > myvec;的 vector 打印到输出,其中myvec [i]在终端上占据第i行。组成myvec的 vector 的大小为3

这是我尝试打印的方式。

for(unsigned int i=0; i<myvec.size() ; ++i   )
{


cout<<myvec[i][0]<<"     "
    <<myvec[i][1]<<"     "
    <<myvec[i][2]<<'\n';
}

当我将其打印以仅输出myvec [i] [0]列的数字时,它们正确对齐。其余数字看起来很困惑。是否有对齐此输出的好方法?
(忽略打印在图像第5行右侧的0.7)

最佳答案

您可以使用setw()设置要写入的最小字符数,并可以使用left将数据输出到左侧。像这样:

cout << setw(8) << left << myvec[i][0];

这应该用空格填充空白空间,但是如果没有,那么您可以执行以下操作:
cout << setw(8) << left << setfill(' ') << myvec[i][0];

您将需要为此#include <iomanip>

关于c++ - 使用C++将输出与终端对齐,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7479149/

10-10 02:55