gotoXY显示在屏幕上

问题描述 投票:1回答:1

我知道我的问题很愚蠢,但我仍然需要你的帮助。为什么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
c++ codeblocks
1个回答
1
投票

我想在屏幕上gotoxy(0,5),但它显示在3行

不,它实际上显示在第5行。

我平台上的默认控制台宽度为120像素。当打印的行太长而无法适应120像素的限制时,控制台将自动创建一个新行,因此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/

© www.soinside.com 2019 - 2024. All rights reserved.