Zeichen aus Konsole lesen

Psyjo

Mitglied
Hallo!

Ich versucheein Programm zu basteln das bei einer bestimmten Position in der Konsole ein Zeichen einlesen muss.
Ich könnte das natürlich auch mit einem Array realisieren.. aber das komplette Array alle 20ms auf den Bildschirm zu schreiben ist äußerst unelegant.
Habt ihr eine Idee was ich da machen könnte?

MfG
 
moin


Wo ist denn das Problem mal die Suchfunktion zu benutzen?!

Code:
void CurPos(int x, int y)
{
    COORD koord;

    koord.x = x;
    koord.y = y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), koord);
}

int main()
{
    int zahl;

    cout<<"Geben sie ne Zahl ein";
    CurPos(10, 20);

    cin>> zahl;
    cin.get();

    return 0;
}


mfg
umbrasaxum
 
Bei dem Beispiel muss ich ja was eingeben... das Programm soll aber ein Zeichen das in der Konsole bei Position xy steht einlesen nicht das zeichen von der Tastatur ;)
Da hast du mich anscheinend falsch verstanden.
 
moin


Habs jetzt mal auf wesentliche beschränkt.

Nun muss man nurnoch x und y die Zielkoordinaten geben und am Ende steht das Zeichen in chiBuffer.
Code:
#include <windows.h> 
#include <iostream>

using namespace std;

VOID main(void) 
{ 

cout<<"HHOHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\n";
cout<<"HXHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\n";
cout<<"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\n";
cout<<"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\n";
cout<<"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\n";
cout<<"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\n";
cout<<"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\n";
cout<<"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\n";
cout<<"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\n";
cout<<"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH";

    HANDLE hStdout; 
    SMALL_RECT srctReadRect; 
	CHAR_INFO chiBuffer[1];
    COORD coordBufSize; 
    COORD coordBufCoord; 
  
	int x = 0, y = 0;

    hStdout = GetStdHandle(STD_OUTPUT_HANDLE); 
   
    srctReadRect.Top = x;    // top left: row 0, col 0 
    srctReadRect.Left = y; 
	srctReadRect.Bottom = x;
	srctReadRect.Right = y;
  
    coordBufSize.Y = 1; 
    coordBufSize.X = 1; 
    coordBufCoord.X = 0; 
    coordBufCoord.Y = 0; 
 
    ReadConsoleOutput( 
       hStdout,
       chiBuffer,
       coordBufSize,
       coordBufCoord, 
       &srctReadRect);      
}
Am Anfang die große Ausgabe ist nur dafür da, damit erstmal was in der Konsole steht.


mfg
umbrasaxum
 
Zurück