如何在C ++中水平显示?

时间:2016-09-12 04:26:54

标签: c++ for-loop

循环的每次迭代都有两行输出。我想要在每次迭代中将a行放在b行的顶部。此外,我想显示下一个(i = 1)迭代线a和b与前一个(i = 0)线a和b水平。

for (int i = 0; i < 2; ++i){
     cout << "LOOP" << endl; //line a
     cout << i << endl;      //line b
}

当前输出:

LOOP
0
LOOP
1

期望的输出:

LOOP  LOOP
0     1

2 个答案:

答案 0 :(得分:2)

您可以保持程序的逻辑原样并将输出存储在缓冲区中,然后再将其发送到stdout。

例如,您可以为每一行使用std::ostringstream

#include <iostream>
#include <sstream>
#include <iomanip>

int main() {
    std::ostringstream line_a,
                       line_b;


    for (int i = 0; i < 4; ++i) {
        line_a << std::setw(6) << "LOOP"; 
        line_b << std::setw(6) << i;  
    }

    std::cout << line_a.str() << '\n'
              << line_b.str() << '\n';

    return 0;
}

答案 1 :(得分:0)

你可以做到

for (int i = 0; i < 2; ++i) {
    cout << "LOOP\t";
}

cout << endl;

for (int i = 0; i < 2; ++i) {
    cout << i << "\t";
}