如标题中所述,我不知道如何格式化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
答案 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;
}