дисплей gotoXY на экране - PullRequest
       17

дисплей gotoXY на экране

1 голос
/ 20 апреля 2019

Я знаю, что мой вопрос глуп, но мне все еще нужна ваша помощь. Почему функция gotoxy не работает?

void gotoxy(int x,int y)
{
    COORD coord={x,y};
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}
using namespace std;
int main()
{
    cout<<"___________________________________________________________________________________________________________________________\n";
   cout<<"|                |      XUAT SAC      |        GIOI        |        KHA         |     TRUNG BINH     |        YEU         |\n";
   cout<<"|     MA LOP     |--------------------------------------------------------------------------------------------------------|\n";
   cout<<"|                |    SL    |    %    |    SL    |    %    |    SL    |    %    |    SL    |    %    |    SL    |    %    |\n";
   cout<<"|-------------------------------------------------------------------------------------------------------------------------|\n";
   gotoxy(0,5);cout<<"gotoxy(0,5)";
}

и отображаем это:

___________________________________________________________________________________________________________________________
   |                |      XUAT SAC      |        GIOI        |        KHA         |     TRUNG BINH     |        YEU         |
   |     MA LOP     |--------------------------------------------------------------------------------------------------gotoxy(0,5)

I want to gotoxy(0,5)on the screen but it is display in the line of 3

1 Ответ

1 голос
/ 20 апреля 2019

Я хочу перейти на экран (0,5), но он отображается в строке 3

Нет, фактически отображается в строке 5.

Ширина консоли по умолчанию на моей платформе составляет 120 пикселей. Если напечатанная строка слишком длинная, чтобы уместиться в 120-пиксельную консоль Windows, автоматически создаст новую строку, следовательно, Y = Y + 1.

Этот код, скорее всего, будет работать для вас, так как ширина меньше ...

std::cout << "_____________________1\n";
std::cout << "_____________________2\n";
std::cout << "_____________________3\n";
std::cout << "_____________________4\n";
std::cout << "_____________________5\n";


gotoxy(0, 5); 
cout << "gotoxy(0,5)";

Вы можете настроить ширину консоли на большую длину, и она должна работать как положено.

https://www.howtogeek.com/howto/19982/how-to-make-the-windows-command-prompt-wider/

...