如何在循环中打印两条相邻的行,同时在c ++中将它们都保持在单行中

时间:2018-09-22 19:31:25

标签: c++

我在for循环中有两个字符串。我想将它们彼此相邻打印,同时将它们都保持在一行中。我对它们两个都使用“ \ r”,但是没有endl,第二个字符串会打印,而第一个则不会。

cout << "\r" << row;
track[pos] = '^';
cout << "\r" << track;

它处于for循环中,因此,如果我在第一个cout之后键入endl,则第一个字符串将在每次迭代后移至新行。有没有办法将两个字符串都保留在自己的行中?

1 个答案:

答案 0 :(得分:1)

两个字符串都被打印,但是'\r'字符是托架 return 字符,它将光标置于行的第一位置。这意味着第二个输出将覆盖第一个输出。

只需在两个字符串之间打印一个空格,它应该可以工作:

cout << "\r" << row;
track[pos] = '^';
cout << ' ' << track;
//      ^^^
// Print a single space

如果目标是在两列中打印输出,然后打印换行符,则应该这样做:

cout << row;
track[pos] = '^';
cout << ' ' << track << '\n';