C ++ работает только последний вызов SetConsoleCursorPosition () - PullRequest
0 голосов
/ 30 ноября 2018

Код ниже выводит текст в последнем 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;
}

1 Ответ

0 голосов
/ 30 ноября 2018

Ваша проблема (вероятно) в буферизованном вводе-выводе.Выходные потоки не записывают в вывод, пока не увидят новую строку '\n', ввод завершен (это называется связанными потоками в C ++) или std::flush или std::endl отправлено в выходной поток.

Сброс также можно сделать, позвонив по номеру std::cout.flush().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...