Reputation: 31
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
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