下面的代码在最后的gotoxy()坐标中输出文本,如果我将cin放在中间,那么它将起作用,光标位于不同的位置。如何更改每个单词的光标位置?
#include <iostream>
#include <windows.h>
using namespace std;
void gotoxy( short x, short y )
{
HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE) ;
COORD position = { x, y } ;
SetConsoleCursorPosition( hStdout, position ) ;
}
int main() {
gotoxy(5,5);
cout << "Test";
gotoxy(10,10);
cout << "Test";
return 0;
}
最佳答案
您的问题是(可能)缓冲的IO。在看到换行符'\n'
之前,输出流不会写入输出,输入完成(在C ++中称为绑定流),或者将std::flush
或std::endl
发送到输出流。
也可以通过调用std::cout.flush()
进行刷新。
关于c++ - C++仅对SetConsoleCursorPosition()的最后一次调用有效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53560743/