下面的代码在最后的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;
}
答案 0 :(得分:5)
您的问题是(可能是)缓冲的IO。在看到换行符'\n'
,输入完成(在C ++中称为绑定流)或将std::flush
或std::endl
发送到输出流之前,输出流不会写入输出
也可以通过调用std::cout.flush()
来完成刷新。