循环的每次迭代都有两行输出。我想要在每次迭代中将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
答案 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";
}