将输出与终端对齐时遇到很多麻烦。我想将 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/