C ++,如何并行编写cout输出?

时间:2018-11-08 14:08:25

标签: c++ format cout

如标题中所述,我不知道如何格式化std::cout输出,以使内部for循环写入“行”,而外部for循环产生列。

我的代码:

#include <iostream>
#include <iomanip>
using namespace std;

class LoopTest
{   //Access specifier
    public:
        //Data Members
        int outer_size = 2;
        int inner_size = 3;

    //Memberfunction
    int testing()
    {
    freopen("/home/user/training/exercise/e0/TESTPROGRAM_OUTPUT.dat", "w", stdout); //redirect output to file

        for(int i = 0; i <= outer_size; i++)
        {   
            cout <<  " number: " << i;
            for(int j = 0; j <= inner_size; j++)
            {
                cout << " j*(j*i): " << j*(j*i); 
                cout << "  ";
                cout << "\n";
            }

        }
        fclose(stdout);
        return 0;

    }
};

上面显示的代码产生以下输出:

     number: 0 j*(j*i): 0  
 j*(j*i): 0  
 j*(j*i): 0  
 j*(j*i): 0  
 number: 1 j*(j*i): 0  
 j*(j*i): 1  
 j*(j*i): 4  
 j*(j*i): 9  
 number: 2 j*(j*i): 0  
 j*(j*i): 2  
 j*(j*i): 8  
 j*(j*i): 18  

如上所述,理想的输出为:

 number: 0 j*(j*i): 0   number: 1 j*(j*i): 0   number: 2 j*(j*i): 0
 j*(j*i): 0             j*(j*i): 1             j*(j*i): 2
 j*(j*i): 0             j*(j*i): 4             j*(j*i): 8
 j*(j*i): 0             j*(j*i): 9             j*(j*i): 18

2 个答案:

答案 0 :(得分:1)

您必须交错输出,首先输出所有第一行,第二行...

   for(int i = 0; i <= outer_size; i++)
   {   
        cout <<  " number: " << i << "\t"; // Add the tabs necessary
   }
   for(int j = 0; j <= inner_size; j++)
   {
       for(int i = 0; i <= outer_size; i++)
       {   
            // The the first result line
       }
    }

答案 1 :(得分:1)

更改for循环的顺序。

您可以执行以下操作:

mkdir($save_path, 0777, TRUE)

在终端上产生此输出:

#include<iostream>
#include<cmath>
using namespace std;
int main (int argc, char* argv[])
{
   int outer_size=2, inner_size=3;
   int j=0;
   for(int i = 0; i <= outer_size; i++)
   {   
        cout <<  " number: " << i;
    cout << " j*(j*i): " << j*(j*i)<<"\t";
   }
   std::cout<<endl;

   for( j = 1; j <= inner_size; j++)
   {

        for (int i=0; i<=outer_size; i++)
        {   
        cout << " j*(j*i): " << j*(j*i)<<"\t\t";
        }
       std::cout<<endl;
   } 

    return 0;
}