Как я могу читать просто консольный вывод - PullRequest
0 голосов
/ 27 сентября 2018

это звучит очень просто, но я не нашел правильный метод, я пишу

cout << "Hello world" << endl;

Я вижу

Hello world

Я хочу получить, например, второй символ 'e'

Метод, подобный

GetConsoleChar(1,0) //gives us char 'e'

Это существует?

1 Ответ

0 голосов
/ 27 сентября 2018

Вы можете использовать функцию 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;
}

В результате вы получите символ в первой строке и первом столбце, который в нашем случае равен H.

Более подробную информацию вы найдете в справочнике .

...