我在for循环中有两个字符串。我想将它们彼此相邻打印,同时将它们都保持在一行中。我对它们两个都使用“ \ r”,但是没有endl,第二个字符串会打印,而第一个则不会。
cout << "\r" << row;
track[pos] = '^';
cout << "\r" << track;
它处于for循环中,因此,如果我在第一个cout之后键入endl,则第一个字符串将在每次迭代后移至新行。有没有办法将两个字符串都保留在自己的行中?
答案 0 :(得分:1)
两个字符串都被打印,但是'\r'
字符是托架 return 字符,它将光标置于行的第一位置。这意味着第二个输出将覆盖第一个输出。
只需在两个字符串之间打印一个空格,它应该可以工作:
cout << "\r" << row;
track[pos] = '^';
cout << ' ' << track;
// ^^^
// Print a single space
如果目标是在两列中打印输出,然后打印换行符,则应该这样做:
cout << row;
track[pos] = '^';
cout << ' ' << track << '\n';