簡體   English   中英

C++,我如何並排編寫 cout 輸出?

[英]C++, How do i write cout output side by side?

正如標題中提到的,我不知道如何格式化我的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

您必須交錯輸出,首先輸出所有第一行,然后輸出第二行......

   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
       }
    }

更改 for 循環的順序。

你可以這樣做:

#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;
}

在終端上生成此輸出:

 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM