在C++中打印列号

在C++中打印列号,c++,string,loops,formatting,C++,String,Loops,Formatting,我想打印一个字符串数组,其中包含按列组织的数字 数组包含{2,1,3,16,8,3,4,1,2} 我想用这张表格打印出来 我试着这么做,但结果是这样打印出来的 2 1 3 16 8 3 4 1 2 有什么帮助吗 我的代码: std::string arr[] = {"2","1","3","16","8","3","4",

我想打印一个字符串数组,其中包含按列组织的数字

数组包含{2,1,3,16,8,3,4,1,2}

我想用这张表格打印出来

我试着这么做,但结果是这样打印出来的

 2      
 1
 3
        16
        8
        3
                  4
                  1
                  2
有什么帮助吗

我的代码:

std::string arr[] = {"2","1","3","16","8","3","4","1","2"};
std::string s="";
int count=0;

for (int i = 0; i <3 ; ++i) 
{
    for (count; count <(i+1)*3 ; ++count) 
    {
        for (int j = 0; j <i ; ++j) 
        {
            std::cout<<"\t";
        }
            std::cout<<arr[count]<<std::endl;
    }
}
我代码中的主要问题是,下一列总是在前一列结束后的新行中开始

我想打印一个字符串数组,其中包含以 柱。数组包含{2,1,3,16,8,3,4,1,2}

我想用这张表格打印出来

2       16        4
1       8         1
3       3         2
对于给定的代码,您可以执行以下更改以实现结果

使用sizeofar/sizeof*arr;查找数组长度;。 根据矩阵的大小做一个循环。这是为了遍历行。 使用第二个循环,直到达到最大数组长度,打印每个数组元素。索引根据矩阵大小递增。 每次内循环完成打印后进行换行。 PS:使用std::string数组是个坏主意。您可以使用简单数组std::array或std::vector来代替它,因为它看起来像是一个整数数组/矩阵

参见输出


如果你张贴了打印数字的代码可能会有帮助。请包括你已经将矩阵转换为的矩阵。数组包含[2-1-3-16-83-4-1-2] -这不是C++。这可能意味着什么。请发布实际代码,而不是一些抽象数字列表的描述。每三个数字打印一次,然后从第二个数字开始打印每三个数字,然后从第三个数字开始打印每三个数字。用于使数字对齐。如果它在一个2D数组中,只需使用外部第二维度的循环对其进行迭代。
2       16        4
1       8         1
3       3         2
#include <iostream>
#include <iomanip>
#include <string>

int main()
{
   std::string arr[]={"2","1","3","16","8","3","4","1","2"};
   const int arrlength = sizeof(arr)/sizeof(*arr);
   const int matrixSize = 3;

   for(int row = 0; row < matrixSize; ++row)
   {
      for (int index = row; index < arrlength ; index += matrixSize)
         std::cout << arr[index] << std::setw(5);
      std::cout << "\n";
   }

  return 0;
}
2   16    4    
1    8    1    
3    3    2