我如何简单地读取控制台输出

And*_*nko 2 c++ console winapi char

听起来很简单,但我还没有找到我写的正确方法

cout << "Hello world" << endl;
Run Code Online (Sandbox Code Playgroud)

我懂了

Hello world
Run Code Online (Sandbox Code Playgroud)

我想要获得例如第二个字符“e”

方法如

GetConsoleChar(1,0) //gives us char 'e'
Run Code Online (Sandbox Code Playgroud)

这存在吗?

Rha*_*hin 5

您可以使用名为 的 winapi 函数ReadConsoleOutputCharacter

例子:

#include <Windows.h>
#include <iostream>

int main()
{
    std::cout << "Hello World!" << std::endl;

    HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);

    char characterFromConsole;

    COORD positionInBuffer;
    positionInBuffer.X = 0; // Column number
    positionInBuffer.Y = 0; // Row number

    DWORD numberOfCharactersReaded = 0;

    DWORD numberOfCharactersToRead = 1;

    ReadConsoleOutputCharacter(
                consoleHandle,
                &characterFromConsole,
                numberOfCharactersToRead,
                positionInBuffer,
                &numberOfCharactersReaded);

    std::cout << characterFromConsole << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

在输出中,您将在第一行和第一列中收到字符,在我们的例子中是H

您可以在参考资料中找到更多信息。