C++:如何在命令提示符的特定位置绘制ASCII字符

C++: How might one draw an ASCII character at a specific location in command prompt

本文关键字:位置 定位 绘制 ASCII 字符 命令提示符 C++      更新时间:2023-10-16

基本上,我希望能够创建一个我可以去的函数:

draw('C', x, y);
draw('h', x+1, y);
draw('a', x+2, y);
draw('r', x+3, y);

命令提示符将在给定的 x 和 y 位置显示Char

我在研究中所能发现的只是我将不得不include <windows.h>,我对此的经验非常少,并使用该库中的预定义内容。

这可能有助于您入门。 有关详细信息,请参阅 https://msdn.microsoft.com/en-us/library/windows/desktop/ms682073(v=vs.85).aspx。

#include <windows.h>
#include <stdio.h>
void main()
{
    HANDLE screenBuffer = CreateConsoleScreenBuffer(
        GENERIC_READ | GENERIC_WRITE,
        FILE_SHARE_READ | FILE_SHARE_WRITE,
        NULL,
        CONSOLE_TEXTMODE_BUFFER,
        NULL);
    if (screenBuffer == INVALID_HANDLE_VALUE)
    {
        printf("CreateConsoleScreenBuffer failed - (%d)n", GetLastError());
        return;
    }
    if (!SetConsoleActiveScreenBuffer(screenBuffer))
    {
        printf("SetConsoleActiveScreenBuffer failed - (%d)n", GetLastError());
        CloseHandle(screenBuffer);
        return;
    }
    for (int x = 0; x < 10; ++x)
    {
        DWORD numCharsWritten;
        WriteConsoleOutputCharacter(screenBuffer, "X", 1, COORD{(short)x, 1}, &numCharsWritten);
        Sleep(1000);
    }
    CloseHandle(screenBuffer);
}