Andrii Kyriienko
Andrii Kyriienko

Reputation: 31

How i can read simply console output

it sounds very simple, but I have not found the method to be correct I write

cout << "Hello world" << endl;

I see

Hello world

I want get for example second char 'e'

Method like

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

Does this exist?

Upvotes: 2

Views: 1720

Answers (1)

Rhathin
Rhathin

Reputation: 1174

You can use winapi function called ReadConsoleOutputCharacter.

Example:

#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;
}

In output you will recieve character in first row and first column, which in our case is H.

You'll find more informations about in reference.

Upvotes: 5

Related Questions