0

我用 C++ 在控制台窗口中编写了一个简单的文本编辑器程序。我有一个 while 循环,它不断循环并检查是否按下了上、下、左、右或退格键。方向键移动光标位置,退格键删除该位置的字符。

**我的问题是:有没有办法可以设置一个条件,如果按下任何键,它会获取该键并将其打印在当前光标位置。例如,如果他们按下“a”键,则会在控制台窗口中打印一个“a”

这是循环

    while (pressedEscape == false) {
        if (GetAsyncKeyState(VK_UP))
            moveUp(position);
        else if (GetAsyncKeyState(VK_DOWN)) 
            moveDown(position);
        else if (GetAsyncKeyState(VK_LEFT))
            moveLeft(position);
        else if (GetAsyncKeyState(VK_RIGHT))
            moveRight(position);
        else if (GetAsyncKeyState(VK_BACK))
            deleteChar();
        else if (GetAsyncKeyState(VK_ESCAPE))
            pressedEscape = true;
        else if (GetAsyncKeyState(0x43) || GetAsyncKeyState(0x63))
            system("cls");

        gotoxy(position.x, position.y);

        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);

        Sleep(100);
    }

所以 id 喜欢的是另一个 else if 条件:

    else if (Any key is pressed) {
         print that key to the screen
    }

我怎样才能做到这一点?

4

0 回答 0